Problem H. S05-09五分制成绩(无脑做法和智者做法)

根据输入的百分制成绩score,转换成相应的五分制成绩 grade 后输出。已知转换标准为: A 90 ≤ score ≤ 100 B 80 ≤ score < 90 C 70 ≤ score < 80 D 60 ≤ score < 70 E 0 ≤ score < 60

输入

输入成绩,如:97

输出

输入成绩,如:A

样例

标准输入复制文本
97
标准输出复制文本
A
标准输入复制文本
54
标准输出复制文本
E
标准输入复制文本
66
标准输出复制文本
D

无脑做法:

#include <iostream>
using namespace std;
int main() 
{
	int score;
	cin>>score;
	
	if(score>=0&&score<60) 
	{
		cout<<"E";
	} 
	
	else if(score>=60&&score<70) 
	{
		cout<<"D";
	} 
	
	else if(score>=70&&score<80) 
	{
		cout<<"C";
	}

	else if(score>=80&&score<90) 
	{
		cout<<"B";
	} 
	
	else if (score>=90&&score<=100) 
	{
		cout<<"A";
	}
	return 0;
}

智者做法

#include<bits/stdc++.h>
using namespace std;
int main() 
{
	int score;
	cin>>score;
	if (score == 100) 
	{
		cout << 'A';
	}
	
	else if(score < 60) 
	{
		cout << 'E';
	}
	
	else 
	{
		printf("%c", 'D' - (score - 60) / 10);
	}	
	return 0;

}

因为只有两种特殊情况,一种是刚好等于100,另一种是没到60分,做个判断就好,其他没有必要else if了,直接用ASCII出结果

posted @ 2022-10-03 18:58  131452lin  阅读(24)  评论(0编辑  收藏  举报