写代码先看清题目需要我们做什么,找到规律,理清逻辑。
代码稍逊,欢迎指正。
#include <stdio.h>
int calc_matrix(int n)
{
printf("请输入%d*%d个数:",n,n);
int a[n][n];
int sum=0;
//输入数组值
for(int i=0;i<n;++i)
for(int j=0;j<n;++j)
scanf("%d",&a[i][j]);
if(n<=3)
{
for(int i=0;i<n;++i)
for(int j=0;j<n;++j)
if(i==j)
sum=sum+a[i][j];
sum=sum+a[0][n-1]+a[n-1][0];
}
if(n>3)
{
for(int i=0;i<n;++i)
for(int j=0;j<n;++j)
if(i==j)
sum=sum+a[i][j];
for(int i=0;i<n;++i)
for(int j=0;j<n;++j)
if(i+j==n-1 && i!=j)//将i+j=n-1数都加起来这些都是另一边对角线,并且不能i和j相同,避免一个数加两次
sum=sum+a[i][j];
}
printf("%d",sum);
}
int main()
{
int n;
printf("请输入n的值:");
scanf("%d",&n);
calc_matrix(n);
return 0;
}