作者: scshuanghai
是否specialjudge: False
题目描述
根据给定阶数,输出方阵。具体格式见测试用例。
输入:
为一个整数n(0<n<100),代表方阵阶数。
输出:
一个n*n阶方阵,具体格式见测试用例(注意,每个数之间用一个空格分隔,每行的最后无空格)。
输入样例
4
输出样例
1 2 5 10
4 3 6 11
9 8 7 12
16 15 14 13
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
int a[n][n]={0};
int k=1;
int i=0,j=0;
int t;
int flag=1;
while(k<=n*n)
{
if(j==0&&i==0&&k<=n*n)
{
a[i][j]=k;
k++;
i=0;
j=1;
//flag=1;
}
if(j==0&&i!=0&&k<=n*n)
{
a[i][j]=k;
k++;
t=i;
i=j;
j=t;
j++;
//flag=1;
}
if(i>=j&&j!=0&&k<=n*n)
{
a[i][j-1]=k;
k++;
//j--;
if(j-1!=0)
{
a[i][j-1]++;
}
j--;
}
if(j>i&&k<=n*n)
{
a[i][j]=k;
k++;
a[i+1][j]=k;
i++;
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
}
2539

被折叠的 条评论
为什么被折叠?



