社区讨论
求助 答案对的上 为什么0分
P5731【深基5.习6】蛇形方阵参与者 3已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @lo19psll
- 此快照首次捕获于
- 2023/10/22 17:30 2 年前
- 此快照最后确认于
- 2023/11/02 17:47 2 年前
CPP
#include<stdio.h>
int main()
{
int n,m,i,j,k,o,l;
scanf("%d",&n);
float q;
int a[n][n];
int b[2*n-1];
for(i=1,m=n,b[0]=n;i<n;i++)
{ m--;
b[2*i]=m;
b[2*i-1]=m;
}
for(o=0,i=0,j=0,k=1,m=0,q=0;o<2*n-1;o++,m++,q=q+0.25,m=q)//i行 j列
if((o+1-4*m)%4==0) //上 4
{
for(l=0;l<b[o];l++,k++)
{
i--;
a[i][j]=k;
}
j=j+1;
}
else if((o+1-4*m)%3==0) //左 3
for(l=0;l<b[o];l++,k++)
{
j--;
a[i][j]=k;
}
else if((o+1-4*m)%2==0)//下 2
for(l=0,j=j-1;l<b[o];l++,k++)
{
i++;
a[i][j]=k;
}
else//右 1
{
for(l=0;l<b[o];l++,j++,k++)
a[i][j]=k;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%2d ",a[i][j]);
printf("\n");
}
return 0;
}
回复
共 3 条回复,欢迎继续交流。
正在加载回复...