求助!循环问题!
各位请看看下面的小程序:当我输入数字的时候,因为isdigit函数的参数当是数字是返回一个真值。既然返回真值,那么就不等于0,那为什么还执行循环呢?
#include <stdio.h>
#include <ctype.h>
main()
{ int n;
do
{
printf("input a nummber");
scanf("%d",&n);
}while(0==isdigit(n));
return ;
}
----------------解决方案--------------------------------------------------------
请看isdigit()的原型, int isdigit(char c)
----------------解决方案--------------------------------------------------------
char和int 不是可以通用吗
----------------解决方案--------------------------------------------------------
晕啊你 假如你输入的是 9 程序会以为它是一个ASCⅡ码 为9的字符
----------------解决方案--------------------------------------------------------
你属于一个48--57 之间的数字看你的程序,肯定只执行一次
----------------解决方案--------------------------------------------------------
那我如果输入48-57之间的数字isdigit函数把参数当作字符吗?
----------------解决方案--------------------------------------------------------
ASCⅡ48-57之间 对应的就是数字嘛
----------------解决方案--------------------------------------------------------
书上是这么说的:
int isdigit(int c)
如果c是一个数字,返回一个真值,否则返回0;
那上边的程序只要输入数字就应该只执行一次啊!
----------------解决方案--------------------------------------------------------
你仔细看看书吧
----------------解决方案--------------------------------------------------------
我的书上是 char
----------------解决方案--------------------------------------------------------