C语言编程题:计算总额外学分(超出100分部分)
问题描述
给定包含NUM_VALS个考试分数的数组testGrades,请编写一个for循环,将sumExtra设置为总额外学分。满分是100分,超过100分的部分即为额外学分。示例:若testGrades = {101, 83, 107, 90},则sumExtra = 8(1 + 0 + 7 + 0 = 8)。请补全以下C语言程序框架:
#include <stdio.h> int main(void) { const int NUM_VALS = 4; int testGrades[NUM_VALS]; int i; int sumExtra = -9999; // Assign sumExtra with 0 before your for loop for (i = 0; i < NUM_VALS; ++i) { scanf("%d", &(testGrades[i])); } /* Your solution goes here */ printf("sumExtra: %d\n", sumExtra); return 0; }
解决方案
首先需要将sumExtra初始化为0,再遍历数组逐个判断分数是否超出满分,累加额外学分:
// 初始化sumExtra为0,确保从正确的起点累加 sumExtra = 0; // 遍历所有考试分数计算额外学分总和 for (i = 0; i < NUM_VALS; ++i) { // 仅当分数超过100时,累加超出部分 if (testGrades[i] > 100) { sumExtra += testGrades[i] - 100; } }
将上述代码替换到原程序的/* Your solution goes here */位置即可。
代码说明
sumExtra = 0;:修正初始值,避免使用错误的默认值影响计算结果- 循环逻辑:逐个检查分数,仅对超过100分的部分进行累加,低于或等于100分的分数不产生额外学分
内容的提问来源于stack exchange,提问作者sara miller
相关产品推荐
相关产品推荐

