描述
输入一个N*N的一个方阵,依次做如下处理:
(1)求两条对角线上各元素之和S1并输出;
(2)求两条对角线上行列下标均为偶数的各元素的乘积S2并输出;
(3)将该方阵中心位置固定,将方阵顺时针反向旋转90度得到新的方阵,然后输出。
输入
第一行,1个正整数n,n大于1但不超过30;
接下来n行,每行n个整数,整数间用空格隔开。
输出
第一行输出三个整数S1和S2。
接下来的N行输出旋转后得到的新方阵。
所有数据之间用1个空格隔开,每行的行首行末均无空格。
输入样例 1
3 4 9 3 3 5 7 8 1 6
输出样例 1
26 576 8 3 4 1 5 9 6 7 3
#include<stdio.h>
int main()
{
int n,i,j,a[30][30]={0},s1=0,s2=1,b[30][30]={0},z=0,h=0,y=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(i==j||(i+j==n-1))
{ s1=s1+a[i][j];
if((i%2==0&&j%2==0)||(i%2==0&&(n-1-i)%2==0))
s2=s2*a[i][j];
}
}
}
printf("%d",s1);
printf(" %d\n",s2);
for(i=0;i<n;i++)
{ int sp=0;
for(j=n-1;j>=0;j--)
{ if(sp!=0)
printf(" ");
printf("%d",a[j][i]);
sp++;
}
printf("\n");
}}
思路先写输入,在写对角线,可以发现i+j=n-1的和i==j的都在对角线直接写