请教一个switch编程问题

来源:百度知道 编辑:UC知道 时间:2024/05/25 02:05:39
#include <iostream>
using namespace std;
int main()
{
int grade,x;
char a,b,c,d,k,l;
x=grade/10;
while(grade=cin.get())
{
cin>>grade;
switch(x)
{
case 10 : cout<<"you got a";break;
case 9 : cout<<"you got b";break;
case 8 : cout<<"you got c";break;
case 7 : cout<<"you got d";break;
default : cout<<"you failed";break;
}

}

return 0;
}

为什么这个程序只能执行default语句,我错在哪里?
求高手指点!!!

你的思路有问题, x=grade/10; 这一句, grade值还没确定呢, 你把它除以10, 有什么用?
while(grade=cin.get())
//这句就更离谱了, 你知道get返回什么?

//不知道你的程序想干啥, 看不出来, 输入必须大于70才能不走default分支
#include <iostream>
using namespace std;
int main()
{
int grade,x;
char a,b,c,d,k,l;

cin>>grade;
x=grade/10;
switch(x)
{
case 10 : cout<<"you got a";break;
case 9 : cout<<"you got b";break;
case 8 : cout<<"you got c";break;
case 7 : cout<<"you got d";break;
default : cout<<"you failed";break;
}

return 0;
}