求一个N×N矩阵主对角线及副对角线上元素之和(中心元素只加一次)。 #include "stdio.h" #define N 3 int fun(int a[N][N]) { int i,j,s; s=0; for(i=0;i<N;i++) for(j=0;j<N;j++) if(【1】i+j==N-1) s=s+a[i][j]; 【2】; } main() { int a[N][N],i,j,s; for(i=0;i<N;i++) for(j=0;j<N;j++) scanf("%d",【3】); 【4】; printf("%d\n",s); }
时间: 2023-11-27 18:54:28 浏览: 91
java代码-使用java计算NxN整型数组中主对角线和副对角线上数字之和的源代码
5星 · 资源好评率100%
这道题需要补全 4 处缺失的代码,下面是完整的代码:
```c
#include <stdio.h>
#define N 3
int fun(int a[N][N]) {
int i, j, s;
s = 0;
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
if (i == j || i + j == N - 1)
s += a[i][j];
return s;
}
int main() {
int a[N][N], i, j, s;
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
scanf("%d", &a[i][j]);
s = fun(a);
printf("%d\n", s);
return 0;
}
```
其中,缺失部分的解释如下:
1. `i+j==N-1` 应改为 `i==j || i+j==N-1`,表示判断当前元素是否在主对角线或副对角线上。
2. 函数中需要返回 `s` 的值。
3. `scanf("%d",【3】)` 应改为 `scanf("%d", &a[i][j])`,表示读入矩阵中的每个元素。
4. `【4】` 应该是 `s = fun(a)`,表示调用函数 `fun` 计算矩阵对角线上元素之和。
阅读全文