|
发表于 2023-11-1 11:05:32
|
显示全部楼层
你的程序基本上是正确的,只有一个小错误需要修复。在判断 if(j=0) 的时候,你使用了单个等号 = ,这是赋值操作,而不是判断相等的操作。应该使用双等号 == 来判断是否相等。以下是修复后的代码:
- #include <stdio.h>
- int main()
- {
- int n;
- scanf("%d", &n); //定义 n_X_n 的矩阵
- int nums[n][n], sum_line[n], sum_row[n];
- int i, j;
- for (i = 0; i < n; i++)
- {
- //n X n
- for (j = 0; j < n; j++)
- {
- scanf("%d", &nums[ i][j]);
- }
- }
- for (i = 0; i < n; i++)
- {
- //sum_line
- sum_line[ i] = 0;
- for (j = 0; j < n; j++)
- {
- sum_line[ i] += nums[ i][j];
- }
- }
- for (j = 0; j < n; j++)
- {
- //sum_row
- sum_row[j] = 0;
- for (i = 0; i < n; i++)
- {
- sum_row[j] += nums[ i][j];
- }
- }
- for (i = 0; i < n + 1; i++)
- {
- if (i < n)
- {
- for (j = 0; j < n; j++)
- {
- printf("%5d ", nums[ i][j]);
- }
- printf("%5d\n", sum_line[ i]);
- }
- else
- {
- for (j = 0; j < n; j++)
- {
- if (j == 0)
- {
- printf("%5d", sum_row[j]);
- }
- else
- {
- printf("%6d", sum_row[j]);
- }
- }
- printf("\n");
- }
- }
- return 0;
- }
复制代码
修复后的代码将会正确输出每行每列之和。 |
|