//5행 5열 직각삼각형
#include <stdio.h>

int main()
{
	int i, j, k(0);
	int arr[5][5];
	
	for( i=0 ; i<5; i++ )
	{
		for( j=i ; j>=0 ; j-- )
		{
			++k;
			arr[i][j] = k;
		}
	}

	for( i=0 ; i<5; i++ )
	{
		for( j=0 ; j<=i ; j++ )
		{
			printf("%3d", arr[i][j]);
		}
		printf("\n");
	}

	return 0;
}


#include <stdio.h>

#define MAX 5

int main()
{
	int i, j;
	int jumsu[MAX];
	int rank[MAX];

	for(i=0 ; i<MAX ; i++)
	{
		printf("%d번 학생의 점수를 입력 : ", i+1);
		scanf("%d", &jumsu[i]);
		
		//모두 1등으로 초기화
		rank[i]=1;
	}

	printf("\n");

	//나보다 높은 점수가 있으면 +1
	for(i=0 ; i<MAX ; i++)
	{
		for(j=0 ; j<MAX ; j++)
		{
			if(jumsu[i] < jumsu[j])
			{
				++rank[i];
			}
		}
	}

	//출력부
	for(i=0 ; i<MAX ; i++)
	{
		printf("%d번 학생의 점수는 %d, 순위는 %d입니다.\n", i+1, jumsu[i], rank[i]);
	}

	return 0;
}



#include <stdio.h>

#define MAX 10

int main()
{
	int arr[MAX];
	int i, j=1;
	int HIGH, LOW, MID;

	//배열 공간 초기화
	for(i=0 ; i<MAX ; i++)
	{
		arr[i] = j;
		j += 2;
	} 

	printf("0을 입력하면 종료");
	
	while(1)
	{
		bool state(1);
		int key;

		LOW = 0;
		HIGH = MAX;
		MID = (LOW+HIGH)/2;

		//배열 공간의 내용을 보여줌
		for(i=0 ; i<MAX ; i++)
		{
			printf("%2d번지 : %2d\n", i+1, arr[i]);
		}

		//키 값을 입력
		printf("\nkey값을 입력하세요 : ");
		scanf("%d", &key);
		if(key <= 0) return 0;

		//2진 검색
		while(state == 1)
		{
			MID = (LOW+HIGH)/2;

			if(arr[MID] == key)
			{
				printf("%d번지에 있습니다.\n\n", MID+1);
				state = 0;
			}
			if(key < arr[MID])
			{
				if(arr[MAX-1]<key)	
					state = 0;

				HIGH = MID-1;
			}
			if(key > arr[MID])
			{
				LOW = MID+1;
			}
		}
		//printf("값이 없습니다.");
	}

	return 0;
}



#include <stdio.h>

void insertion_sort( int *nArr, int nCount )
{
	int i(0), j(0);
	int key = 0;

	for( i=1 ; i<nCount ; ++i )
	{
		key=nArr[i];
		for( j=i-1 ; j>=0 ; --j )
		{
			if( nArr[j]>key )
			{
				nArr[j+1] = nArr[j];
			}
			else
			{
				break;
			}
		}
		nArr[j+1] = key;
	}
	int a = 9;
}

int main( )
{
	int nArr[] = { 7, 3, 8, 0, 2, 1, 5, 13, 6 };
	int nCount = sizeof(nArr)/sizeof(*nArr);
	
	insertion_sort( nArr, nCount );

	for( int i=0 ; i<nCount ; ++i )
	{
		printf( "%d\n", nArr[i] );
	}

	return 0;
}




#include <stdio.h>

#define MAX 10

int main()
{
	int arr[MAX];
	int i, j;
	int temp;

	printf("음수를 입력하면 종료\n\n");
	
	while(1)
	{
		//입력
		for(i=0 ; i<MAX ; i++)
		{
			printf("%d번지 수를 입력하세요 : ", i+1);
			scanf("%d", &arr[i]);
			if(arr[i] < 0)	return 0;
		}

		//입력 확인
		printf("\n입력한 수는 ");
		for(i=0 ; i<MAX ; i++)
		{
			printf("%2d ", arr[i]);
		}
		printf("\n");

		//정렬
		for(i=0 ; i<MAX-1 ; i++)
		{
			for(j=0 ; j<MAX-(i+1) ; j++)
			{
				//꺽쇠 방향만 바꾸면 오름, 내름
				if(arr[j] > arr[j+1])
				{
					temp = arr[j];
					arr[j] = arr[j+1];
					arr[j+1] = temp;
				}
			}//for j
		}//for i

		//출력
		printf("정렬된 수는 ");
		for(i=0 ; i<MAX ; i++)
			printf("%2d ", arr[i]);

		printf("\n\n");

	}//while(1)

	return 0;
}



#include <stdio.h>

#define MAX 10

int main( )
{
	int arr[MAX];
	int i, j;
	int temp;

	printf( "음수를 입력하면 종료\n\n" );
	
	while(1)
	{
		//입력
		for( i=0 ; i<MAX ; i++ )
		{
			printf( "%d번지 수를 입력하세요 : ", i+1 );
			scanf( "%d", &arr[i] );
			if(arr[i] < 0)
			{
				return 0;
			}
		}

		//입력 확인
		printf( "\n입력한 수는 " );
		for( i=0 ; i<MAX ; i++ )
		{
			printf( "%2d ", arr[i] );
		}
		printf( "\n" );

		//정렬
		for( i=0 ; i<MAX-1 ; i++ )
		{
			for( j=i+1 ; j<MAX ; j++ )
			{
				//꺽쇠 방향만 바꾸면 오름, 내름
				if( arr[i] > arr[j] )
				{
					temp = arr[i];
					arr[i] = arr[j];
					arr[j] = temp;
				}
			}//for j
		}//for i

		//출력
		printf( "정렬된 수는 " );
		for( i=0 ; i<MAX ; i++ )
		{
			printf( "%2d ", arr[i] );
		}

		printf( "\n\n" );

	}//while(1)

	return 0;
}



#include <stdio.h>

#define MAX 5

int main()
{
	int arr[MAX];
	int i(0);
	int inputNum, min(99999999);
	int d, k(0);

	//입력 부분
	for(i=0 ; i<MAX ; i++)
	{
		printf("%2d번째 수를 입력 : ", i+1);
		scanf("%d", &arr[i]);
	}

	printf("\n입력한 수는 ");
	for(i=0 ; i<MAX ; i++)	printf("%d ", arr[i]);

	//특정 수 입력
	printf("\n\n임의수 입력 : ");
	scanf("%d", &inputNum);


	//검사
	for( i=0 ; i<MAX ; i++)
	{
		if(arr[i] > inputNum)
		{
			d=arr[i]-inputNum;
		}

		if(arr[i] < inputNum)
		{
			d=inputNum-arr[i];
		}

		if(d<min)	
		{
			min = d;
			k = arr[i];
		}
	}

	printf("가장 가까운 수는 : %d\n", k);

	return 0;
}




//배수의 수와 합을 구함
#include <stdio.h>

int main()
{
	printf("0을 입력하면 종료\n\n");

	while(1)
	{
		int sum(0), cnt(0), i;
		int MUL, MAX;

		printf("구하려는 배수를 입력 : ");
		scanf("%d", &MUL);

		printf("몇까지 구할거임? : ");
		scanf("%d", &MAX);

		//0을 입력하면 종료
		if(MUL == 0 || MAX == 0)
		{
			printf("0을 입력하여 종료함");
			return 0;
		}

		//MAX 값이 구하려는 배수보다 크면 실행
		if(MAX > MUL)
		{
			for( i=1 ; i<=MAX ; i++ )
			{
				if(i%MUL==0)
				{
					sum += i;
					++cnt;
				}//if
			}//for
			printf("\n%d까지의 %d의 배수의 합은 %d이며, 개수는 %d입니다.\n", MAX, MUL, sum, cnt);
		}//if

		//배수가 MAX보다 크면 다시
		if(MUL > MAX)
		{
			printf("ㅡㅡ");
		}

		printf("\n\n\n");
	}
	return 0;
}



//최소, 최대값 구하기
#include <stdio.h>

#define STUDENT 5

int main()
{
	int nScore, nCount(0), nMinScore(100), nMaxScore(0), nSum, nAvg;
	int i;

	for(i=0 ; i<STUDENT ; i++)
	{
		printf("%d번 학생의 성적을 입력 : ", i+1 );
		scanf("%d", &nScore);
		
		//입력 받을 때마다 카운트
		++nCount;
		
		//최소값 구하기
		if(nScore < nMinScore)
		{
			nMinScore = nScore;
		}

		//최대값 구하기
		if(nScore > nMaxScore)
		{
			nMaxScore = nScore;
		}
	}
	printf("\n");

	nSum = nMaxScore+nMinScore;
	nAvg = nSum/2;

	printf("입력 받은 개수 : %d\n", nCount);
	printf("최소값 : %d\n", nMinScore);
	printf("최대값 : %d\n", nMaxScore);
	printf("최소값, 최대값의 합 : %d\n", nSum);
	printf("최소값, 최대값의 합의 평균 : %d\n", nAvg);

	printf("\n");

	return 0;
}


#include <iostream>
#include <vector>

using namespace std;

int main()
{
	int nInput;

	printf("0을 입력하면 종료\n\n");

	while(1)
	{
		vector<int> vectorArr;

		printf("정수를 입력하세요 : ");
		scanf("%d", &nInput);
		if(nInput == 0)
		{
			return 0;
		}

		//약수 구하는 부분, 입력 값에서 /2 하므로써 효율적으로 변함.
		for( int i=1 ; i<=nInput/2 ; ++i )
		{
			//나누어 나머지가 0이면 약수
			if(nInput%i == 0)
			{
				vectorArr.push_back( i );
			}
		}

		//출력
		printf("입력한 수의 약수는 ");

		for( int j=0 ; j<vectorArr.size() ; ++j )
		{
			printf( "%d ", vectorArr[j] );
		}

		printf( "%d 이며, 총 %d개 입니다.\n\n", nInput, vectorArr.size()+1 );
	}

	return 0;
}

+ Recent posts