我这样好像很完美 只要是正方形就好了 改变行和列的时候也要改变数组元素
#include <stdio.h>
int main()
{
int m=3;int n=3;
int arr[m][n] = {{1,2,3},{4,5,6},{7,8,9}};
int i,j;
int sum=0;
if(m==n)
{
if(m%2!=0)
{
for(i=0;i<m;i++)
{
sum+=arr[i][i];
}
for(j=m-1;j>=0;j--)
{
sum+=arr[j][m-j-1];
}
sum-=arr[(m-1)/2][(m-1)/2];
printf("对角线元素之和是:%d\n",sum);
}
else
{
for(i=0;i<m;i++)
{
sum+=arr[i][i];
}
for(j=m-1;j>=0;j--)
{
sum+=arr[j][m-j-1];
}
printf("对角线元素之和是:%d\n",sum);
}
}
else
{
printf("不是正方形");
}
return 0;
}