#include <stdio.h>
#include <ctype.h>
int main() {
int i;
float point, co_curricular, academic_merit, total_merit;
float total_points = 0.0;
char grade;
// 显示评分表
printf("---------------------------------------\n");
printf("| Grade | A | B | C | D | E |\n");
printf("---------------------------------------\n");
printf("| Points| 4 | 3 | 2 | 1 | 0 |\n");
printf("---------------------------------------\n");
// 输入四科成绩
for (i = 1; i <= 4; i++) {
printf("%d. Enter grade of the subject\t: ", i);
scanf(" %c", &grade); // 跳过空白字符
grade = toupper(grade); // 转大写
switch (grade) {
case 'A': point = 4.00; break;
case 'B': point = 3.00; break;
case 'C': point = 2.00; break;
case 'D': point = 1.00; break;
case 'E': point = 0.00; break;
default:
printf("Invalid grade entered.\n");
return 1; // 错误终止
}
printf("Points obtain\t\t\t: %.2f\n", point);
total_points += point;
}
// 输入并验证课外活动分
printf("\nEnter the co-curricular merit\n");
printf("Co-curricular merit\t\t: ");
scanf("%f", &co_curricular);
if (co_curricular < 0 || co_curricular > 10) {
printf("Error: Co-curricular merit must be 0-10.\n");
return 1;
}
// 计算与输出
academic_merit = total_points / 4;
total_merit = (academic_merit * 90) / 4 + co_curricular;
printf("\nAcademic merit\t\t\t: %.2f\n", academic_merit);
printf("Total merit points\t\t: %.2f\n", total_merit);
return 0;
}