You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言学生成绩评定程序部分场景运行异常问题问询

问题原因与修复方案

核心错误

你编写的代码中,对CSC115课程分数做等级判定的所有条件语句,都错误将右侧判断变量写为了marksCSC111,而非对应课程的分数变量marksCSC115。
当CSC111分数为67时,所有CSC115的判定条件都无法命中:

  • 比如判定E等级的条件为marksCSC115 >39 && marksCSC111 <= 49,此时marksCSC111为67,不满足<=49的要求,条件不成立
  • 所有判定分支都不触发的情况下,grade15是未初始化的局部变量,输出时就会出现异常值或者空白
    而当两门课程分数都是45时,CSC111的45满足<=49的条件,刚好能命中对应CSC115的E等级判定分支,所以能正常输出。

修复代码

把所有CSC115等级判定语句中的marksCSC111替换为marksCSC115即可,修复后的对应代码片段如下:

// 修复后的CSC115分数判定逻辑
if(marksCSC115 >= 0 && marksCSC115 <= 39){
    grade15 = 'F';
}
else if(marksCSC115 >39 && marksCSC115 <= 49){
    grade15 = 'E';
}
else if(marksCSC115 >49 && marksCSC115 <= 59){
    grade15 = 'D';
}
else if(marksCSC115 >59 && marksCSC115 <= 69){
    grade15 = 'C';
}
else if(marksCSC115 >69 && marksCSC115 <= 79){
    grade15 = 'B';
}
else if(marksCSC115 >79) {
    grade15 = 'A';
}

额外优化建议

  • 局部变量grade11和grade15建议在定义时初始化,比如初始化为' '或者其他默认值,避免极端情况下未初始化输出异常
  • 输出的课程代码和定义的课程名不一致,代码里是CSC111/CSC115,输出写的是CCS111/CCS115,建议统一避免混淆

内容的提问来源于stack exchange,提问作者Sen ZmaKi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 14:15:07