HOJ2004 成績轉換

本文提示:我知道這題太簡單了,幾乎連水題都不夠格,但是,在做的時候發現了一個問題,以後要引起注意。

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!”。

這題剛開始是WA的,代碼如下:
#include<stdio.h>

int main()
{
	int grade;
	while(scanf("%d",&grade) != EOF)
	{
		if(grade<0 || grade>100)
		{
			printf("Score is error!\n");
			break;
		}
		switch(grade/10)
		 {
		 	case 10:
		 	case 9:
		 		printf("A\n");
		 		break;
		 	case 8:
		 		printf("B\n");
		 		break;
		 	case 7:
		 		printf("C\n");
		 		break;
		 	case 6:
		 		printf("D\n");
		 		break;
		 	default:
		 		printf("E\n");
		 		break;
		}	
	}
	return 0;
}
後來發現當輸入數據小於0,或大於100的時候,就直接跳出程序了。最後修改如下:
#include<stdio.h>

int main()
{
	int grade;
	while(scanf("%d",&grade) != EOF)
	{
		if(grade<0 || grade>100)
				printf("Score is error!\n");
	else
	{
		switch(grade/10)
		 {
		 	case 10:
		 	case 9:
		 		printf("A\n");
		 		break;
		 	case 8:
		 		printf("B\n");
		 		break;
		 	case 7:
		 		printf("C\n");
		 		break;
		 	case 6:
		 		printf("D\n");
		 		break;
		 	default:
		 		printf("E\n");
		 		break;
		}
	}	
	}
	return 0;
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章