題目要求:輸入字母等級(A-E),輸出對應百分制分數區間,使用 switch 實現。
#include <stdio.h>
#include <ctype.h> // for toupper
int main() {
char grade;
printf("輸入等級 (A-E):");
scanf(" %c", &grade); // 空格跳過換行符
// 統一轉大寫,簡化 case
grade = toupper(grade);
switch (grade) {
case 'A': printf("分數區間:90-100\n"); break;
case 'B': printf("分數區間:80-89\n"); break;
case 'C': printf("分數區間:70-79\n"); break;
case 'D': printf("分數區間:60-69\n"); break;
case 'E': printf("分數區間:0-59\n"); break;
default: printf("輸入錯誤:請輸入 A-E 字母\n");
}
return 0;
}
case,程式碼更簡潔。flushall() 非標準,應避免使用。if('a'<=c && c<='z') c=c-32; 雖可行,但不如 toupper() 可移植(依賴 ASCII 碼)。printf("區間:%%d-%%d\\n", low, high); 便於維護。嘗試修改程式:輸入數值分數(0-100),用 if-else if 或技巧性 switch(score/10) 輸出等級。