|
실행이 되지 않는데.. 짧은 C언어 실력으로 맞는지는 잘 모르겠습니다만..
이상한 부분이 있어서 제 의견을 올려봅니다..
잘못 생각했다면 답변 부탁 드립니다.
#include <stdio.h>
void main(void)
{
int i, j;
int count, temp;
int a[10];
printf("숫자를 입력하세요.( 종료: 0 입력)\n");
for(i=0; i<10; i++)
a[i] = 0;
count = 0;
do{
scanf("%d", &temp);
count++;
for(i=0; i<10; i++) <----------//이 부분에서.. scanf로 새로운 temp를 계속 받는데
{ //그렇다면 그 때마다 for문을 새로 들어오게 되어서
if(!a[i] || a[i]>temp) //i = 0 으로 계속 초기화 될텐데요.. scanf위치를
{ //for문 안으로 하든지 아니면 for문을 do-while문
a[i] = temp; //밖으로 빼는건 어떨까 생각해 봤습니다.
i = 10;
} <------//for(i=0; i<10; i++)에서 i<10 이런 조건으로 본다면
} //10개 이상의 수를 입력 했을 때 프로그램이 안 될것
}while(temp!=0); //같은데요..
for(i=0; i<9; i++)
{
for(j=i; j<10; j++)
{
if(a[i]>a[j])
{
temp = a[i];
a[j] = a[i];
a[j] = temp;
}
}
}
printf("\n----------입력한 개수: %d\n", count-1);
printf("smallest number 10 : ");
for(i=0; i<10; i++)
{
if(a[i])
printf("%d", a[i]);
}
}
|