#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
) ; // 跳过空白字符
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 ( "\n Enter the co-curricular merit\n " ) ; printf ( "Co-curricular merit\t \t : " ) ; fflush ( stdout
) ; // 强制刷新输出缓冲区,确保提示显示 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 ( "\n Academic merit\t \t \t : %.2f\n " , academic_merit
) ; printf ( "Total merit points\t \t : %.2f\n " , total_merit
) ;
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxjdHlwZS5oPgoKaW50IG1haW4oKSB7CiAgICBpbnQgaTsKICAgIGZsb2F0IHBvaW50LCBjb19jdXJyaWN1bGFyLCBhY2FkZW1pY19tZXJpdCwgdG90YWxfbWVyaXQ7CiAgICBmbG9hdCB0b3RhbF9wb2ludHMgPSAwLjA7CiAgICBjaGFyIGdyYWRlOwoKICAgIC8vIOaYvuekuuivhOWIhuihqAogICAgcHJpbnRmKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwogICAgcHJpbnRmKCJ8IEdyYWRlIHwgQSB8IEIgfCBDIHwgRCB8IEUgfFxuIik7CiAgICBwcmludGYoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIik7CiAgICBwcmludGYoInwgUG9pbnRzfCA0IHwgMyB8IDIgfCAxIHwgMCB8XG4iKTsKICAgIHByaW50ZigiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKCiAgICAvLyDovpPlhaXlm5vnp5HmiJDnu6kKICAgIGZvciAoaSA9IDE7IGkgPD0gNDsgaSsrKSB7CiAgICAgICAgcHJpbnRmKCIlZC4gRW50ZXIgZ3JhZGUgb2YgdGhlIHN1YmplY3RcdDogIiwgaSk7CiAgICAgICAgc2NhbmYoIiAlYyIsICZncmFkZSk7ICAvLyDot7Pov4fnqbrnmb3lrZfnrKYKICAgICAgICBncmFkZSA9IHRvdXBwZXIoZ3JhZGUpOyAgLy8g6L2s5aSn5YaZCgogICAgICAgIHN3aXRjaCAoZ3JhZGUpIHsKICAgICAgICAgICAgY2FzZSAnQSc6IHBvaW50ID0gNC4wMDsgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ0InOiBwb2ludCA9IDMuMDA7IGJyZWFrOwogICAgICAgICAgICBjYXNlICdDJzogcG9pbnQgPSAyLjAwOyBicmVhazsKICAgICAgICAgICAgY2FzZSAnRCc6IHBvaW50ID0gMS4wMDsgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ0UnOiBwb2ludCA9IDAuMDA7IGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgcHJpbnRmKCJJbnZhbGlkIGdyYWRlIGVudGVyZWQuXG4iKTsKICAgICAgICAgICAgICAgIHJldHVybiAxOyAgLy8g6ZSZ6K+v57uI5q2iCiAgICAgICAgfQoKICAgICAgICBwcmludGYoIlBvaW50cyBvYnRhaW5cdFx0XHQ6ICUuMmZcbiIsIHBvaW50KTsKICAgICAgICB0b3RhbF9wb2ludHMgKz0gcG9pbnQ7CiAgICB9CgogICAgLy8g6L6T5YWl5bm26aqM6K+B6K++5aSW5rS75Yqo5YiGCiAgICBwcmludGYoIlxuRW50ZXIgdGhlIGNvLWN1cnJpY3VsYXIgbWVyaXRcbiIpOwogICAgcHJpbnRmKCJDby1jdXJyaWN1bGFyIG1lcml0XHRcdDogIik7CiAgICBmZmx1c2goc3Rkb3V0KTsgIC8vIOW8uuWItuWIt+aWsOi+k+WHuue8k+WGsuWMuu+8jOehruS/neaPkOekuuaYvuekugogICAgc2NhbmYoIiVmIiwgJmNvX2N1cnJpY3VsYXIpOyAgLy8g6L6T5YWl5YC855Sx57uI56uv6Ieq5Yqo5Zue5pi+5Zyo5o+Q56S66KGMCgogICAgaWYgKGNvX2N1cnJpY3VsYXIgPCAwIHx8IGNvX2N1cnJpY3VsYXIgPiAxMCkgewogICAgICAgIHByaW50ZigiRXJyb3I6IENvLWN1cnJpY3VsYXIgbWVyaXQgbXVzdCBiZSAwLTEwLlxuIik7CiAgICAgICAgcmV0dXJuIDE7CiAgICB9CgogICAgLy8g6K6h566X5LiO6L6T5Ye6CiAgICBhY2FkZW1pY19tZXJpdCA9IHRvdGFsX3BvaW50cyAvIDQ7CiAgICB0b3RhbF9tZXJpdCA9IChhY2FkZW1pY19tZXJpdCAqIDkwKSAvIDQgKyBjb19jdXJyaWN1bGFyOwoKICAgIHByaW50ZigiXG5BY2FkZW1pYyBtZXJpdFx0XHRcdDogJS4yZlxuIiwgYWNhZGVtaWNfbWVyaXQpOwogICAgcHJpbnRmKCJUb3RhbCBtZXJpdCBwb2ludHNcdFx0OiAlLjJmXG4iLCB0b3RhbF9tZXJpdCk7CgogICAgcmV0dXJuIDA7Cn0=