|
결과는 재대로 나옵니다.
구현순서:
1. 배열의 값을 오름차순으로 정렬한다.
2. 숫자를 입력받는다.
3. 배열의 맨 마지막값과 비교하여
입력값이 작으면 배열 마지막에 입력값을 저장
입력값이 크면 입력값을 버림.
[소스]-----------------
#include <stdio.h>
#define MAX_NUM 10
void main(void)
{
int i, j;
int count, temp;
int a[MAX_NUM];
printf("\n숫자를 입력하세요.( 종료: 0 입력)\n");
for(i=0; i<MAX_NUM; i++) a[i] = 0;
count = 0;
temp = 0;
while(1)
{
//정렬 작은 수 부터 큰 수로..
//숫자 0 은 맨 마지막으로..
for(i=0; i<MAX_NUM-1; i++)
{
for(j=i+1; j<MAX_NUM; j++)
{
if(!a[i] || (a[j] && a[i] > a[j]))
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
//키보드로 숫자를 입력 받음
scanf("%d",&temp);
//입력한 숫자가 0 이면 while문을 빠져 나간다
if(!temp) break;
// 입력한 숫자 개수 카운트
count++;
//배열의 마지막 값이 0 이거나
//입력받은 값보다 크면 입력받은 값으로 바꾼다.
if(!a[MAX_NUM-1] || a[MAX_NUM-1] > temp) a[MAX_NUM-1] = temp;
}
printf("\nInput count: %d\n", count);
printf("smallest Top %d : ", MAX_NUM);
for(i=0; i<MAX_NUM; i++)
{
// 0 이 아닌 배열 a값만 출력한다
if(a[i]) printf("%d, ", a[i]);
}
}
|