`注意每个数字有都会占用
3
3 个字符,前面使用空格补齐。`
显然你不能直接打一个空格
by wYYSZLwSSY @ 2023-07-06 10:23:22
```cpp
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int a[15][15];
int main(){
ll n, k=1, x=1, y=0;
cin>>n;
while(k<=n*n){
while(y<n&&!a[x][y+1])
a[x][++y]=k++;
while(x<n&&!a[x+1][y])
a[++x][y]=k++;
while(y>1&&!a[x][y-1])
a[x][--y]=k++;
while(x>1&&!a[x-1][y])
a[--x][y]=k++;
}
//cout<<" ";这一行删去
for(int i=1; i<=n; i++){
for(int j=1; j<=n; j++)
printf("%3d",a[i][j]);//向右对齐三位这样用
//也可以用cout<<setw(3)<<a[i][j];
cout<<endl;
}
}
```
总的来说,输出出了问题,要用向右对齐三位的方法而不是按照样例输空格。
by 沙雕苏w @ 2023-07-06 10:23:26
@[wYYSZLwSSY](/user/297683) 好的,谢谢
by Password201214 @ 2023-07-08 08:35:01