C语言计算二维数组各列和时输出异常大数问题求助
异常原因
- 二维数组下标使用错误:C/C++ 中二维数组的声明规则为
数组名[行数][列数],你定义的table[4][5]对应4行、5列,合法行下标范围为03,合法列下标范围为04。 - 数组越界访问:你写的内层循环中j的上限为5,遍历行时j会取到4,已经超过了行下标的最大合法值,此时
table[j][i]访问的是数组内存空间之外的随机值,求和后自然会得到不符合预期的异常数值。
修正后代码
int table [4][5] = { {8,9,7,5,9}, {9,9,10,10,5}, {6,10,11,10,9}, {9,11,5,8,10}, }; // 遍历5个列 for(int i = 0; i < 5; i++){ int sum = 0; // 遍历每个列对应的4个行元素 for(int j = 0; j < 4; j++){ sum += table[j][i]; } cout << sum << " " << endl; }
正确运行结果
输出的5个列的总和依次为:32、39、33、33、33。
内容的提问来源于stack exchange,提问作者Hxxxx
相关产品推荐
相关产品推荐

