不知道哪里错了
#include
int main()
{ int n,i,j,k,p;
while(scanf("%d",&n)!=EOF)
{ int a[n][n];
for(i=0;ifor(j=0;j"%d",&a[i][j]);
}
}
for(i=0;ifor(k=0,p=0,j=0;jif(i==j)
k=k+a[i][j];
if(i+j==n-1)
p=p+a[i][j];
printf("%d %d",k,p);
}
}printf("\n");
}
return 0;
}
应该是计算对角线之和的for循环和打印对角线之和那里错了,具体分析如下:
把 printf("%d %d",k,p);这句代码放到第四个for循环后面,因为第三个第四个for循环是用于寻找当前矩阵的对角线之和,所以打印对角线的结果要放到在寻找对角线和的后面;
然后把k和p赋初始值0提到第三个for循环之前,这个也是同样道理,因为在计算每组矩阵的对角线之和之前都需要初始化他们的和为0,修改如下:
#include<stdio.h>
int main()
{ int n,i,j,k,p;
while(scanf("%d",&n)!=EOF)
{ int a[n][n];
for(i=0;i<n;i++)
{ for(j=0;j<n;j++)
{ scanf("%d",&a[i][j]);
}
}
k=0,p=0;
for(i=0;i<n;i++)
{ for(j=0;j<n;j++)
{
if(i==j)
k=k+a[i][j];
if(i+j==n-1)
p=p+a[i][j];
}
}
printf("%d %d",k,p);
printf("\n");
}
return 0;
}