1.题目
给出一百分制成绩,要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。90分以上为‘A’,80-89分为‘B’,70-79分为‘C’,60-69分为‘D’,60分以下为‘E’
输入
一个整数 0-100以内
输出
一个字符,表示成绩等级
样例输入
90
样例输出
A
2.题意
根据输入给不同的成绩分类,输出不同的成绩等级
3.思路
成绩等级无非5种,想到以switch-case语句来枚举五种情况,因为成绩等级只和十位有关,则想到用一个变量来储存十位,十位可以由输入的分数/10得到(整形变量除法舍去小数);也可以用if-else语句直接判断分数的范围来输出成绩等级。
4.代码
#include<iostream>
using namespace std;
int main()
{
int x,f;//定义变量x为分数,f为分数的十位
cin>>x;//输入分数
if(x==100)f=9;//分数为100时仍是等级A,和十位为9是同一种情况,故令f=9;
else f=x/10;//将分数除以10,因为x是整形数据,小数部分舍去,故只留下个位,即原来的十位
switch(f)//对f进行判断
{
case 9:cout<<"A";break;
case 8:cout<<"B";break;
case 7:cout<<"C";break;
case 6:cout<<"D";break;
default:cout<<"E";break;//default:为其余情况即分数低于60时的操作
}
return 0;
}
当然也可以运用switch语句的一个特性,当case语句执行完之后,若没有break则继续执行下一条语句,直到遇到break或者执行完switch-case中所有语句才退出。这样就省去了对100的特殊处理。
#include<iostream>
using namespace std;
int main()
{
int x,f;//定义变量x为分数,f为分数的十位
cin>>x;//输入分数;
f=x/10;//将分数除以10,因为x是整形数据,小数部分舍去,故只留下个位,即原来的十位
switch(f)//对f进行判断
{
case 10://当分数为100,f为10时直接向下执行,和f为9是输出相同
case 9:cout<<"A";break;
case 8:cout<<"B";break;
case 7:cout<<"C";break;
case 6:cout<<"D";break;
default:cout<<"E";break;//default:为其余情况即分数低于60时的操作
}
return 0;
}
也可以使用if-else语句
直接判断分数的范围来输出成绩等级
#include<iostream>
using namespace std;
int main()
{
int x;//定义变量x为分数
cin>>x;//输入分数
if(x>=90){//对分数的范围进行判断,输出相应的成绩dengj
cout<<"A";
}
else if(x>=80 ){
cout<<"B";
}
else if(x>=70 ){
cout<<"C";
}
else if(x>=60 ){
cout<<"D";
}
else{
cout<<"E";
}
return 0;
}