社区讨论
我把从1到9全测试了一下 答案没错 但是只有第四个对了 麻烦各位看看哪里出错了
P5731【深基5.习6】蛇形方阵参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @lqukyqpq
- 此快照首次捕获于
- 2024/01/01 15:09 2 年前
- 此快照最后确认于
- 2024/01/01 18:33 2 年前
C
#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
int n;//插入顺序为右下左上 当没出界且插入方向前方没有被插入时插入
scanf("%d",&n);
int a[15][15]={0};
int x=1,y=1;//用来标记插入的位置;
int i=1,j;
a[x][y]=i;
while(i<n*n)//当一次插入完成时 如果i为全部写入 则继续
{
//先向右插入 当未出界且前方未被插入是插入
while(y+1<=n&&a[x][y+1]==0)
{
y++;i++;
a[x][y]=i;
}
//向下插入 当未出界且前方未被插入是插入
while(x+1<=n&&a[x+1][y]==0)
{
x++;i++;
a[x][y]=i;
}
//向左插入
while(y-1>=1&&a[x][y-1]==0)
{
y--;i++;
a[x][y]=i;
}
//向上插入
while(x-1>=1&&a[x-1][y]==0)
{
x--;i++;
a[x][y]=i;
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
printf(" %2d ",a[i][j]);
}
printf("\n");
}
return 0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...