社区讨论
求大佬
P5731【深基5.习6】蛇形方阵参与者 4已保存回复 6
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 6 条
- 当前快照
- 1 份
- 快照标识符
- @m3n7vfz9
- 此快照首次捕获于
- 2024/11/19 00:05 去年
- 此快照最后确认于
- 2025/11/04 14:26 4 个月前
大佬为什么明明有右边数字如果不为零的情况下就向下转弯的判断,但是他为啥还是往一个方向走,而且所有转弯的if判断只执行了一次,第二次明明也是一样的条件但是不执行了
CPP#include<iostream>
#include<cstdio>
using namespace std;
int a[20][20]={0};
int main()
{
int i=1,j=1,k,n,c=1;
cin >> n;
for(k=1;k<=n*n;k++)
{
a[i][j]=k;
if(c==1)//向右
{
if(j>=n||a[i][j+1])//当运行到最右边,或者右边数字不为零时变向
{
c++;
i++;
continue;
}
else
{
j++;
}
}
if(c==2)//向下
{
if(i==n||a[i+1][j]!=0)//当运行到最下边,或者下边数字不为零时变向
{
c++;
j--;
continue;
}
else
{
i++;
}
}
if(c==3)//向左
{
if(j==1||a[i][j-1]!=0)//当运行到最左边,或者左边数字不为零时变向
{
c++;
i--;
continue;
}
else
{
j--;
}
}
if(c==4)//向上
{
if(a[i-1][j]!=0)//当运行到上边数字不为零时变向
{
c==1;
j++;
continue;
}
else
i--;
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
printf("%3d",a[i][j]);
}
cout <<endl;
}
return 0;
}
回复
共 6 条回复,欢迎继续交流。
正在加载回复...