判断是否数字的问题.
#include <iostream.h>
#include <stdio.h>
#include <ctype.h>
int main()
{
int p;
int isdigit(int);
cout < < "please enter your point(0~100): ";
cin> > p;
if(isdigit(p))
{cout < < "it is a number!\n ";
if(p <0||p> 100)
cout < < "you are SB!\n ";
else
{
if(p> =90&&p <=100) cout < < "your grade is A!\n ";
else if(p> =80&&p <90) cout < < "your grade is B!\n ";
else if(p> =60&&p <80) cout < < "your grade is C!\n ";
else if(p> =0&&p <60) cout < < "your grade is D!\n ";
else ;
}
}
else
cout < < "It isn 't a number!\n ";
return 0;
}
这是根据分数判断等级的程序.我又加了判断输入的语句.但是加了以后.即使输入数字.结果也是it isn 'ta number 望高手指点
[解决办法]
你定义的输入的p是int型的,而isdigit()函数判断的应当是字符的ASCII码,所以假如你输入一个85,相当于做了char q=(int)p后,判断85对应的ASCII码“U”,所以不是一个数字。
假如你把上面改为 char p;在isdigit()函数这可以过关,但是你判断输入在哪个等级的时候不能用char型,要用int型去判断了,所以很麻烦。像版主说的那样把保护去了吧。或者干脆自己写个类似isdigit函数,不用系统那个。