首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

判断是否数字的有关问题

2012-02-19 
判断是否数字的问题.#include iostream.h#include stdio.h#include ctype.hintmain(){intpintisdig

判断是否数字的问题.
#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函数,不用系统那个。

热点排行