求解 如何在整型数组中查找出非数字的元素并提醒?

wubenn 2014-04-05 07:23:17
编了一个按照数字大小排序的程序 想加一个当输入内容中夹带字母发出时警告提示的功能 但是数组又用不了isalpha或者>'a'<'z'之类的方法 到底怎么做呢
...全文
78 点赞 收藏 5
写回复
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wubenn 2014-04-05
引用 3 楼 wang0635 的回复:

if ((scanf("%d", &a)) != 1)
{
    ...
}
这个我也考虑过 但具体怎么用呢
回复
707wk 2014-04-05
如果硬要这样的话,可以用getchar()读取输入的字符,然后再转化为数值
回复
wang0635 2014-04-05

if ((scanf("%d", &a)) != 1)
{
    ...
}
回复
wubenn 2014-04-05
好吧 用查找函数不是我的水平能办到的 但是我发现把字母和符号按照%d格式输入的时候会都形成一个-800000以下的数 所以我写了以下的程序 确实能够识别单独的字母 可是 3f 4j这种错误输入却被忽略 直接看作是3和4 这怎么解决啊 int main() { int a[1000]; int i,t ; char l; printf("输入若干数字\n"); for(i=0;i<1000;i++) { scanf("%d",&a[i]); t=i; scanf("%c",&l); if(l=='x') break; } printf("输入完毕\n"); for(i=0;i<t;i++) { if(a[i]<-8000000) {printf("\a\a\a失败的输入\n "); goto lable;} } for(i=0;i<t;i++) printf("%d \n ",a[i]); lable: return 0; }
回复
baichi4141 2014-04-05
整型数组会把内存中的所有数据按照整型数值来对待,不存在什么“非数字的元素” 就像原子炉只认识质子中子电子,你非要它区分出一个人和一头牛一样没意义 楼主面临的问题本质,是处理错误输入,如果楼主愿意接受任何输入,那么就每次从输入中读取一个字符,自行判断是否是数字字符,如果是就组合成数值,不是就报错,不过对于不喜欢这么做甚至只会cin>>a的初学者来说,直接规定“不允许数值以外的输入,否则后果由输入者自负”更好
回复
发动态
发帖子
C语言
创建于2007-09-28

6.3w+

社区成员

C语言相关问题讨论
申请成为版主
社区公告
暂无公告