求助,只有当y=1时没有输出

P5731 【深基5.习6】蛇形方阵

```cpp #include<bits/stdc++.h> using namespace std; long long a[10][10]; int main(){ long long dx[4]={0,1,0,-1}; long long dy[4]={1,0,-1,0}; long long i,j,n,num,d; cin>>n; for(i=0;i<=n+1;i++){ for(j=0;j<=n+1;j++){ a[i][j]=-1; } } for(i=1;i<=n;i++){ for(j=1;j<=n;j++){ a[i][j]=0; } } i=1; j=1; d=0; for(num=1;num<=n*n;num++){ a[i][j]=num; if(a[i+dx[d]][j+dy[d]]!=0){ d=(d+1)%4; } i+=dx[d]; j+=dy[d]; } for(i=1;i<=n;i++){ for(j=1;j<=n;j++){ cout.width(3); cout<<a[i][j]; } cout<<"\n"; } } ``` 试试 ~~sqlm~~
by E303 @ 2024-05-06 21:04:36


```cpp while(y<n&&!a[x][y+1]){ y++; a[x][y]=count; count++; } ``` 这一段当y=1的时候,会直接到a[x][2]去吧,而且其它循环也到不了1吧。 还有输出记得%3d 还有楼主大大,我有可能会被盗号,看到我发恶意语言的时候记得私信 Thank you
by xzh_2013 @ 2024-05-06 21:21:11


|