C语言三维数组求最大值异常排查:程序始终输出初始值9.6
三维温度数组最大值查找的错误修正
你的代码始终输出初始值9.6的原因是最大值更新逻辑完全写反:
- 当发现当前温度值大于当前记录的最大值时,你错误地将数组元素的值覆盖为
max,而不是把max更新为这个更大的温度值。
修正后的核心函数代码:
double max_temperature_week(double temperature[52][7][24]){ int i,j,k; double max = temperature[0][0][0]; for(i = 0; i < 52; i++){ for(j = 0; j < 7; j++){ for(k = 0; k < 24; k++){ if(temperature[i][j][k] > max){ max = temperature[i][j][k]; // 修正赋值方向,更新max为更大的值 } } } } return max; }
补充说明:
- 你的数组仅初始化了第一周的数据,剩余51周会被自动初始化为0,但这不会影响结果——现有数据中的最大值是10.2,修正后程序会正确输出该值。
内容的提问来源于stack exchange,提问作者check1_07
相关产品推荐
相关产品推荐

