我要寫一個程式(c語言:用c寫)
假如我是要輸入好幾筆成績,但是我中途某筆輸入的不是數字時,
會提出警告,然後從跑一遍剛剛那行,之後繼續下去,
例如:
甲:1
乙:2
丙:3
丁:a(不是數字的)
(提出警告)
丁:.....
像上面那要
我試過用
int i,x;
int a[10];
for(i = 0; i < 10; i++)
{
printf("<%d>:",i);
scanf("%d",&a[i]);
x=isdigit(a[i]);
printf("%d:",x);
if(x == 0){
printf("請輸入數字\\n");
printf("<%d>:",i);
scanf("%d",&a[i]);}
}
但是輸入數字以外的都會當
而且isdigit()不是輸入是0~9的都傳回非0值嗎?
怎麼我讓他等於x然後顯示出x,但卻是0?
2006-09-30 17:40:02 · 2 個解答 · 發問者 小P 2 in 電腦與網際網路 ➔ 程式設計
scanf成功讀取之後會回傳 成功讀取的數量值如test = scanf("%d",&var);if(test == 1)printf("成功!");elseprintf("失敗");若是兩個的話則test = scanf("%d %d",&var1,&var2);if(test == 2)printf("成功!");elseprintf("失敗");若你想讓某變數一直讀取到數字時才罷休,則 while ( scanf("%d",&var) !=1 ) { printf("try again:"); while(getchar()!='\n'); //為了把所有東西自緩衝區清掉 }就可以摟
2006-09-30 18:44:14 · answer #1 · answered by adam! 5 · 0⤊ 0⤋
指定輸入的數值範圍
或是查ASCII表,去限制輸入的字元符號
if(num<0||num>10){
printf("WRONG!!\n");
}
2006-09-30 18:14:01 · answer #2 · answered by Big_John-tw 7 · 0⤊ 0⤋