只有最后的cout和printf输出换行的区别。
有大佬知道是为何吗?
#include<bits/stdc++.h>
using namespace std;
int d[15][15];
int main(){
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
//freopen("in.txt","r",stdin);
int n;
cin>>n;
int flag=1;
int i,x,y;
i=x=1;
y=0;
while(i<=n*n){
while(y<n&&!d[x][y+1])d[x][++y]=i++;
while(x<n&&!d[x+1][y])d[++x][y]=i++;
while(y>1&&!d[x][y-1])d[x][--y]=i++;
while(x>1&&!d[x-1][y])d[--x][y]=i++;
}
for(int l=1;l<=n;l++){
for(int j=1;j<=n;j++){
printf("%3d",d[l][j]);
}
cout<<endl;
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int d[15][15];
int main(){
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
//freopen("in.txt","r",stdin);
int n;
cin>>n;
int flag=1;
int i,x,y;
i=x=1;
y=0;
while(i<=n*n){
while(y<n&&!d[x][y+1])d[x][++y]=i++;
while(x<n&&!d[x+1][y])d[++x][y]=i++;
while(y>1&&!d[x][y-1])d[x][--y]=i++;
while(x>1&&!d[x-1][y])d[--x][y]=i++;
}
for(int l=1;l<=n;l++){
for(int j=1;j<=n;j++){
printf("%3d",d[l][j]);
}
printf("\n");
}
return 0;
}