#include <stdio.h>
int main(){
int i;
int a[]={0,1,2,3,4,5,6,7,8,9,10};
int number;
scanf("%d",&number);
for(i=0;i<number;i++){
scanf("%d",&a[i]);
printf("%d",a[i]);
}
return 0;
}
//請問是什么原因導致的
uj5u.com熱心網友回復:
scanf("%d\n",&number);試試這樣uj5u.com熱心網友回復:
你輸入完要輸入的數字后按了回車確認,回車鍵也是會算到你輸入的字符中的。比如你要輸入 5,實際輸入的就是 5 \n。scanf讀取完5后 ,\n還留在緩沖區里。uj5u.com熱心網友回復:
#include <stdio.h>
int main()
{
int i;
int a[]={0,1,2,3,4,5,6,7,8,9,10};
int number;
scanf("%d",&number);
if (number > sizeof(a)/sizeof(a[0]))
number = sizeof(a)/sizeof(a[0]);
for(i=0;i<number;i++){
scanf("%d",&a[i]);
printf("%d",a[i]);
}
return 0;
}
供參考~
代碼基本上沒問題,注意number輸入的值,若輸入0,那么是不會進入回圈的。當然也不能輸入大于sizeof(a)/sizeof(a[0])的值,因為會導致陣列越界。
uj5u.com熱心網友回復:
謝謝轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/107167.html
標籤:C語言
上一篇:用遞回寫了一個3x3的小迷宮,想知道為什么return不能直接跳出遞回,如過想強制跳出遞回,該怎么做,附上原碼加運行結果。
