大家给个方法,咋判断输入的是否为数字,是数字的话执行,不是的话跳出循环

菜鸟旭仔 2012-11-25 06:58:20
while(1)
{
//用scanf接收一个信号,如果是数字,调用一个子函数,如果不是,则跳出while循环

}
...全文
310 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
菜鸟旭仔 2012-11-25
  • 打赏
  • 举报
回复
本贴问题已经解决,谢谢大家的踊跃发言,给大家晒一下解决的办法 #include<stdio.h> int main(void) { float a; while(1) if(scanf("%f",&a)== 0)/*当输入的为数字时,程序会跳到else,反之,则结束程序*/ return 0; else printf("%f\n",a); return 0; }
菜鸟旭仔 2012-11-25
  • 打赏
  • 举报
回复
引用 6 楼 derekrose 的回复:
接受一个信号是什么意思?那我可以自认为是字符串吗?如果这样的话你可以这样做: 先要判断第一个位,因为有可能是+或者-,就是说如果第一个不是数字(用ls的方法判断字符是否是数字)也不是符号位,那么可以返回false了; 然后指针依次后移,如果遇到一个非数字,判断他是不是小数点或者分号等可以出现在数字中的符号,那么这个符号只可以出现一次,不可能有两个小数点的数字; 然后依次到最后一个字符\0,如……
代码是这样的,看一下咋实现输入不是数字时跳出循环 #include<stdio.h> int main(void) { float a; while(1) if(scanf("%f",&a),a!= EOF) return 0; else printf("%f\n",a); return 0; }
derekrose 2012-11-25
  • 打赏
  • 举报
回复
引用 5 楼 z745968621 的回复:
大家说说EOF这个杂用啊?
如果用EOF来判断输入结束的话,那么我上面的\0可以修改为-1,因为eof的值是-1
derekrose 2012-11-25
  • 打赏
  • 举报
回复
接受一个信号是什么意思?那我可以自认为是字符串吗?如果这样的话你可以这样做: 先要判断第一个位,因为有可能是+或者-,就是说如果第一个不是数字(用ls的方法判断字符是否是数字)也不是符号位,那么可以返回false了; 然后指针依次后移,如果遇到一个非数字,判断他是不是小数点或者分号等可以出现在数字中的符号,那么这个符号只可以出现一次,不可能有两个小数点的数字; 然后依次到最后一个字符\0,如果没有非法字符,那么返回true。
菜鸟旭仔 2012-11-25
  • 打赏
  • 举报
回复
大家说说EOF这个杂用啊?
菜鸟旭仔 2012-11-25
  • 打赏
  • 举报
回复
引用 1 楼 breakfisher 的回复:
用isdigit() 原型:extern int isdigit(char c);   用法:#include <ctype.h>   功能:判断字符c是否为数字   说明:当c为数字0-9时,返回非零值,否则返回零。
输入的是一个float型的数字啊
newtee 2012-11-25
  • 打赏
  • 举报
回复
撞车了
newtee 2012-11-25
  • 打赏
  • 举报
回复
isdigit   原型:extern int isdigit(char c);   用法:#include <ctype.h>   功能:判断字符c是否为数字   说明:当c为数字0-9时,返回非零值,否则返回零。
breakfisher 2012-11-25
  • 打赏
  • 举报
回复
用isdigit() 原型:extern int isdigit(char c);   用法:#include <ctype.h>   功能:判断字符c是否为数字   说明:当c为数字0-9时,返回非零值,否则返回零。

70,039

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧