求助

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

把int s[20][20];提前
by Mlao @ 2024-03-10 12:00:24


@[WFong](/user/1089320) 加一个ios,然后把s定义放在了主函数前面就过了,悬一关 ``` #include<bits/stdc++.h> using namespace std; int s[20][20]; int main(){ ios::sync_with_stdio(false); cout.tie(NULL); cin.tie(NULL); int a=0,x=1,y=0; cin>>a; int m=1; while(m<=a*a) { while(y<a&&!s[x][y+1]) s[x][++y]=m++; while(x<a&&!s[x+1][y]) s[++x][y]=m++; while(y>1&&!s[x][y-1]) s[x][--y]=m++; while(x>1&&!s[x-1][y]) s[--x][y]=m++; } for(int i=1;i<=a;i++) { for (int j=1;j<=a;j++) cout<<setw(3)<<s[i][j]; cout<<"\n"; } return 0; }
by QoQ_ @ 2024-03-10 12:08:56


求关 AC ```cpp #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) { 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++) { putchar(' '); for(j=1;j<=n;j++) { printf("%2d ",a[i][j]); } printf("\n"); } return 0; }
by HEROBRINEH @ 2024-03-10 12:31:56


|