求一个3×3矩阵两条对角线上元素之和(中心元素只加一次)。 函数接口定义: int fun(int a[N][N]); 其中a是用户传入的参数,函数fun求a数组的两条对角线上元素之和并返回。 裁判测试程序样例: #include <stdio.h> #define N 3 int fun(int a[N][N]); 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]); printf("%5d",a[i][j]); } printf("\n"); } s=fun(a); printf("%4d\n",s); return 0; } /* 请在这里填写答案 */ 输入样例: 1 2 3 4 5 6 7 8 9 输出样例: 1 2 3 4 5 6 7 8 9 25
时间: 2024-03-02 13:52:55 浏览: 55
C语言程序设计-分别求一个3×3的整型矩阵两对角线元素之和(或之积)。
5星 · 资源好评率100%
好的,这里给出使用C语言实现的代码:
```c
#include <stdio.h>
#define N 3
int fun(int a[N][N]) {
int sum = 0;
for(int i = 0; i < N; i++) {
sum += a[i][i]; // 左上到右下对角线
sum += a[i][N - i - 1]; // 右上到左下对角线
}
sum -= a[N/2][N/2]; // 中心元素只加一次,减去多加的一次中心元素
return sum;
}
int main() {
int a[N][N], s;
for(int i = 0; i < N; i++) {
for(int j = 0; j < N; j++) {
scanf("%d", &a[i][j]);
printf("%5d", a[i][j]);
}
printf("\n");
}
s = fun(a);
printf("%4d\n", s);
return 0;
}
```
在裁判测试程序中,我们先读入矩阵 `a`,然后输出它的每个元素。接着调用函数 `fun` 计算矩阵两条对角线上的元素之和,并输出结果。需要注意的是,在 `fun` 函数中,我们需要使用宏定义 `N` 来表示数组的维度,同时计算中心元素的下标时需要使用整数除法,否则可能会得到错误的结果。
阅读全文