编程完成从键盘输入一个n*n(最大为20*20)矩阵的各元素的值,求出该矩阵两条对角线上个元素之和。

2024-12-01 18:36:51
推荐回答(3个)
回答(1):

//array是保存矩阵值的二维数组,n为矩阵维度,返回值为对角线相加的和。
//如果int值sum不够,可以改为long long的64位整数值。
int sumMatrix(int** array,int n)
{
int sum=0;
if(array==null)return -1;
//将两对角线值相加。
for(int i=0;i {
sum+=array[i][i]+array[i][n-i-1];
}
//如果为奇数行,则减去重复值。
if(n%2==1)
{
sum-=array[n/2][n/2];
}
return sum;
}

回答(2):

能具体点么?貌似是使用多位数组写成

回答(3):

#include
#include
#include
int main()
{
int n;
int sum1=0;
int sum2=0;
scanf("%d",&n);
int *p;
p = (int *)malloc(n*n*sizeof(int));
int i,j;
for(i=0;i {
for(j=0;j scanf("%d",p+i*n+j);
}
for(i=0;i {
for(j=0;j printf("%8d",*(p+i*n+j));
printf("\n");
}
for(i=0;i {
sum1 +=*(p+i*n+i);
sum2 +=*(p+i*n+(n-i-1));
}
printf("sum1=%d\n",sum1);
printf("sum2=%d\n",sum2);
free(p);
return 0;
}