作者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
1F:推 LiloHuang:使用 #include <ctype.h> 中的isdigit() 140.127.71.200 05/11 16:04
2F:推 caml:man scanf. mismatch返回zero. 221.122.52.122 05/11 16:23
3F:推 sjgau:如果是输入整数的话,+, - 符号,可以接受 123.193.222.89 05/11 18:42
4F:→ sjgau:如果是浮点数的话,增加 ., E, e 都可以 123.193.222.89 05/11 18:43