//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;
}
能具体点么?貌似是使用多位数组写成
#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
}
for(i=0;i
for(j=0;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;
}