我寫了一個程序,應該採取數字數組和找到最小數量的數組索引。但是,當我輸入空格之間的數字然後按下回車鍵時,程序將繼續運行。原因是什麼?這裏是代碼:程序,不終止
#include<stdio.h>
//read numbers to an array
//find minimum
//print the index of minimum
double findMinimum(int size,double array[]){
int n;
int minIndex=0;
for(n=1;n<size;size++){
if(array[n]<array[n-1]){
minIndex=n;
}
}
return minIndex;
}
int main(){
setvbuf(stdout,NULL,_IONBF,0);
int size=0;
double inArray[size];
printf("Enter an array of numbers:");
int k=0;
char c;
while(c!='\n'){
c=getchar();
if(c=='\n'){
break;
}
scanf("%lf",&inArray[k]);
k++;
size++;
};
int minIndex=0;
minIndex=findMinimum(size,inArray);
printf("The index of minimum number is %i",minIndex);
return 0;
}
我也採取了掃描數字到數組的代碼的一部分。我試圖改變while循環並使用「break」語句,但輸出給出了數組中除第一個外的所有數字。這裏是代碼:
#include<stdio.h>
//read numbers to an array
int main(){
setvbuf(stdout,NULL,_IONBF,0);
int size=0;
double inArray[size];
printf("Enter an array of numbers ending with question mark:\n");
int k=0;
char c;
while(1){
c=getchar();
if(c=='?'){
break;
}
scanf("%lf",&inArray[k]);
k++;
size++;
};
int n;
for(n=0;n<size;n++){
printf("%f\n",inArray[n]);
}
return 0;
}
感謝您的幫助提前!
條件應該是'如果(陣列[N] <陣列[minIndex])' – mangusta
謝謝,現在的循環結束。但是,該程序的輸出是錯誤的。我試圖打印存儲在數組中的數字,結果是0.000000或隨機數(垃圾)。可能是什麼問題?它是在while循環嗎? – baur
@mangusta你是對的, –