成绩转换
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 163383 Accepted Submission(s): 71157
Problem Description
输入一个百分制的成绩t,将其转换成对应的等级,具体转换规则如下:
90~100为A;
80~89为B;
70~79为C;
60~69为D;
0~59为E;
Input
输入数据有多组,每组占一行,由一个整数组成。
Output
对于每组输入数据,输出一行。如果输入数据不在0~100范围内,请输出一行:“Score is error!”。
Sample Input
56 67 100 123
Sample Output
E D A Score is error!
Author
lcy
Source
问题链接:HDU2004 成绩转换。
问题简述:将100分制的成绩转换成A、B、C、D、E和F。
问题分析:
一般教科书上,实现成绩转换功能用if语句或switch语句,那是浮云。用查表法来实现,可以做到逻辑简单,程序运行速度快,语句简洁。
程序说明:(略)。
题记:
也许许多人编写完这样的程序,最想说的一句话是:“我是天才!如此地与众不同。”
AC的C语言程序如下:
/* HDU2004 成绩转换 */
#include <stdio.h>
int main(void)
{
int score;
char convert[] = "EEEEEEDCBAA";
while(scanf("%d", &score) != EOF) {
if(score < 0 || score > 100)
printf("Score is error!\n");
else
printf("%c\n", convert[score/10]);
}
return 0;
}
AC的C语言程序如下:
/* HDU2004 成绩转换 */
#include <stdio.h>
int main(void)
{
int score;
while(scanf("%d", &score) != EOF) {
if(score < 0 || score > 100)
printf("Score is error!\n");
else {
char ans;
switch(score / 10) {
case 10:
case 9:
ans = 'A';
break;
case 8:
ans = 'B';
break;
case 7:
ans = 'C';
break;
case 6:
ans = 'D';
break;
default:
ans = 'E';
}
printf("%c\n", ans);
}
}
return 0;
}
AC的C语言程序如下:
/* HDU2004 成绩转换 */
#include <stdio.h>
int main(void)
{
int score;
while(scanf("%d", &score) != EOF) {
if(score < 0 || score > 100)
printf("Score is error!\n");
else {
char ans;
if(score >= 90) ans = 'A';
else if(score >= 80) ans = 'B';
else if(score >= 70) ans = 'C';
else if(score >= 60) ans = 'D';
else ans = 'E';
printf("%c\n", ans);
}
}
return 0;
}