首先,你的猜想是正确的,这个问题是由于数组初始化部分缺少元素导致的。让我解释一下原因。
在你的代码中,定义了一个5x5的二维数组 course 来存储学生成绩。然而,你只初始化了前四行的数据,而第五行没有提供任何初始值。C/C++ 中的数组是按照连续内存块存储的,因此没有显式赋初值的元素会使用默认初始值。
对于 float 类型,未初始化的元素将被赋值为 0.0。因此,在你的输出结果中,最后一列 avg 的初始值都是 0.0。
为了解决这个问题,你可以通过以下两种方式之一:
1. 提供第五行的初始值:- float course[5][5] = {
- {10, 20, 30, 40},
- {20, 30, 40, 50},
- {30, 40, 50, 60},
- {40, 50, 60, 70},
- {50, 60, 70, 80}
- };
复制代码 或者- float course[5][5] = {
- {10, 20, 30, 40, 0},
- {20, 30, 40, 50, 0},
- {30, 40, 50, 60, 0},
- {40, 50, 60, 70, 0},
- {50, 60, 70, 80, 0}
- };
复制代码
2. 将数组的大小修改为4x5,因为你只提供了四组数据,没有必要使用额外的存储空间:- float course[4][5] = {
- {10, 20, 30, 40},
- {20, 30, 40, 50},
- {30, 40, 50, 60},
- {40, 50, 60, 70}
- };
复制代码 或者- float course[4][5] = {
- {10, 20, 30, 40, 0},
- {20, 30, 40, 50, 0},
- {30, 40, 50, 60, 0},
- {40, 50, 60, 70, 0}
- };
复制代码
这些修改将确保你的数组初始化正确,之后计算出的平均值也能正确存储。希望能帮到你!如果还有其他问题,请随时提问。
如果回答对你有帮助,请给我一个最佳答案!  
|