作者VENGENE (我不在~)
看板Programming
標題[問題] 如何判別輸入資料為非數字?
時間Fri May 11 15:28:09 2007
寫題目時突然想到如果有眼睛不好的、手滑的
鍵入非數字的資料(+-*/abc之類的)
有辦法判斷嗎?怎樣程式才不會亂掉?
希望有高手指點迷津~ <(_ _)>
我是newb...囧rz
============================以下是我的source code============================
#include <stdio.h>
#include <stdlib.h>
#define num 15
int i, a[num]={0}, sort, temp;
int main()
{
/* 判斷數值 */
printf ("輸入%d位正整數\n", num);
do
{
for (i=0; i<num; i++) {
printf ("第%d個數:", i+1);
scanf ("%d", &a[i]);
if (a[i]<0) {
printf ("錯誤,請輸入正整數\n");
break;
}
}
} while (a[i]<0);
/* 排序 */
for ( sort = 1; sort < num; sort++ ){
for ( i=0; i < num-sort; i++ ){
if ( a[i] > a[i+1] ){
temp = a[i];
a[i] = a[i+1];
a[i+1] = temp;
}
}
}
/* 輸出 */
printf ("8th value=%d\n", a[7]);
system ("pause");
return 0;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.123.222.57
推 LiloHuang:使用 #include <ctype.h> 中的isdigit() 140.127.71.200 05/11 16:04
推 caml:man scanf. mismatch返回zero. 221.122.52.122 05/11 16:23
推 sjgau:如果是輸入整數的話,+, - 符號,可以接受 123.193.222.89 05/11 18:42
→ sjgau:如果是浮點數的話,增加 ., E, e 都可以 123.193.222.89 05/11 18:43