@[fbexit](/user/361482)
```
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
printf(" %2d ",a[i][j]);
}
printf("\n");
}
```
每个数字间只有2个空格
改成
```cpp
for(i=1;i<=n;i++)
{
putchar(' ');//每行前都有一个空格
for(j=1;j<=n;j++)
{
printf("%2d ",a[i][j]);//每个数字间一个空格
}
printf("\n");
}
```
by chyuya @ 2024-01-01 15:57:24
```cpp
#include<bits/stdc++.h>
using namespace std;
int shuzu[10][10];
int main(){
int x,y,n,num=1;
x=y=1;
cin>>n;
//cout<<"一开始的数组为:\n";
//for(int i=1;i<=n;i++){
// for(int j=1;j<=n;j++) cout<<shuzu[i][j]<<" ";
// cout<<endl;
//}
while(num<=n*n){
while(y<=n&&shuzu[x][y]==0&&num<=n*n) {
//cout<<endl<<"填数x="<<x<<"y="<<y;
shuzu[x][y++]=num++;
}
y--;x++;//x=2,y=4;
while(x<=n&&shuzu[x][y]==0&&num<=n*n){
//cout<<endl<<"填数x="<<x<<"y="<<y;
shuzu[x++][y]=num++;
}
//cout<<endl<<"两次后的x y"<<x<<" "<<y<<endl;
x--;y--;
//cout<<endl<<"两次后的x y"<<x<<" "<<y<<endl; //x=4,y=3;
while(y>=1&&shuzu[x][y]==0&&num<=n*n) {
//cout<<endl<<"填数x="<<x<<"y="<<y;
shuzu[x][y--]=num++;
}
y++;x--;//x=3,y=1;
while(x>=1&&shuzu[x][y]==0&&num<=n*n) {
//cout<<endl<<"填数x="<<x<<"y="<<y;
shuzu[x--][y]=num++;
}
x++;y++;
}
// cout<<endl;
// cout<<"改变n次后的数组: x为"<<x<<"y="<<y<<endl;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++) cout<<setw(3)<<shuzu[i][j];
cout<<endl;
}
return 0;
}
```
by canwen2 @ 2024-04-05 12:53:51