编写一个函数,该函数有三个参数,一个是二维数组,一个是二维数组的行,一个是二维数组的列数,输出该二维数组两条对角线元素之和。
#include<stdio.h>
void add(int x,int y,int *a);
int main(){
int n;
printf("请输入该矩阵的行数:");
scanf("%d",&n);
int a[n][n];
printf("请输入该矩阵的各项值:");
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
scanf("%d",&a[i][j]);
}
}
add(n,n,(int *)a);
return 0;
}
void add(int x,int y,int *a){
int sum=0;
for(int i=0;i<x;i++){
sum+=*(a+i*y+i); //第i行第i个数
}
for(int i=0;i<x;i++){
sum+=*(a+i*y+x-i-1);//第i行第x-i-1个数
}
if(x%2==0){
printf("%d",sum);
}else{
sum-=*(a+(x/2)*y+x/2);
printf("%d",sum);
}
}