注册 登录
编程论坛 C++教室

刚学VC++,请教一个简单的问题

siaoxing 发布于 2011-09-10 09:26, 333 次点击
#include <iostream>
using namespace std;
void main()
{
    int a;
    cout <<"请输入学生成绩"<<endl;
    cin >>a;
    if((a>1)&&(a<100))
    {
            if(a>=90)
        {
        cout <<"成绩为优"<<endl;
        }
        if((a>=80)&&(a<90))
        {
            cout <<"成绩为良"<<endl;
        }
        if((a>=70)&&(a<80))
        {
            cout <<"成绩为一般"<<endl;
        }
        if((a>=60)&&(a<70))
        {
            cout <<"成绩为及格"<<endl;
        }
        if(a<60)
        {
            cout <<"成绩小于60分不及格"<<endl;
        }
    }
    else
    {
        cout<<"你输入的不是1到100的整数"<<endl;
    }

}


------------------------------------------------------------------------
上面输入数字加字母或者是小数的话,都显示成绩小于60分,请教一下如何解决输入不是1到100整数的问题(刚学VC++,请大家不要笑话我)
3 回复
#2
hoho5682011-09-10 11:31
字母或者不再这个范围的都好说,关键是小数和整数的区别,我是这么处理的.
程序代码:
    float i;

    while (1)
    {
      cin >> i;
      if ((i>0)&&(i<100)&&(i == floor(i)))
          break;
      else
      {
         cout << "Invalid Input!" << endl;   
         cin.clear();
         cin.ignore();
      }
    }

取整数部分,若相等则判断为整数;
否则,可以判断不是整数;
#3
exo19912011-09-10 23:49
你看一下将i的类型改为float,在应用时将其转换为int类型进行比较,可能会消除例外。
#4
siaoxing2011-09-11 05:11
,谢了,将a变量类型改成float,真的全解决了。

[ 本帖最后由 siaoxing 于 2011-9-11 05:12 编辑 ]
1