[英]Why code is not printing anything as output?
在按Ctrl + D后,我希望此代碼可以打印數組,但是它什么也沒做。
#include<stdio.h>
int main(){
int k,i=0,a;
int b[10];
while(scanf("%d",&a)!=EOF){
if(a>(a/4+a/3+a/2))
b[i]=a;
else
b[i]=(a/4+a/3+a/2);
i++;
}
for(k=0;k<=i;k++){
printf("%d\n",b[k]);
}
return 0;
}
您使用錯誤的組合鍵在操作系統(Windows 8)上生成EOF。 Ctrl + D在類似Unix的系統上很常見,但是Windows系統通常使用Ctrl + Z。
請注意,如果您不在空白行中,則可能必須兩次使用Ctrl + Z (一次刷新當前輸入行,一次生成EOF)。
最佳猜測-您輸入的不是數字,因此scanf
返回0,並且程序進入無限循環。 由於您不顯示輸入內容,因此無法分辨。
如果希望它停止在非數字輸入上,請將循環更改為while(scanf("%d",&a) > 0)
您應該檢查文檔以獲取scanf的返回值...它返回掃描的項目數,0、1、2等...不是EOF
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.