C 语言的一个问题,具体是《C 语言程序设计:现代方法》第 8 章第 7 道编程题。题目要求进行 5 次输入,每次输入 5 个数字,并创建一个 5x5 的数组来储存这些数据,输出数组每行、每列的加和结果。
我的代码如下:
#include <stdio.h>
#define N 5
int main(void)
{
int a[N][N];
int row_sum[N] = {0}, col_sum[N] = {0};
for (int i = 0; i < N; i++) {
printf("Enter row %d: ", i + 1);
for (int j = 0; j < N; j++)
scanf("%d", &a[i][j]);
getchar();
}
for (int i = 0; i < N; i++) {
for (int j = 0; i < N; j++) {
row_sum[i] += a[i][j];
col_sum[i] += a[j][i];
}
}
printf("\nRow totals:");
for (int i = 0; i < N; i++)
printf(" %d", row_sum[i]);
printf("\nColumns totals:");
for (int i = 0; i < N; i++)
printf(" %d", col_sum[i]);
printf("\n");
return 0;
}
以上代码的运行结果可以正常读入输入的数字并将之储存在数组 a 中,但是输出不了计算的结果。我这里打算利用两个数组分别存储行加和、列加和的结果,这样计算结果的话,只需要一个循环。我看答案用了两个循环,以计算行加和的循环为例,它是将每行的加和结果存储到一个整型变量中,并进行输出。
以上代码哪里错了呢?