题目:建立一个程序,输入整数N,生成并输出N行N列的顺时针螺旋方阵,如下图所示:
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
思路:按顺时针螺旋顺序自增输出,顺序是第i行----第n-1-i列----第n-1-i行----第i列
#include <bits/stdc++.h>
using namespace std;
int main() {
unsigned int n;
cin>>n;
int x[n][n];
int m=1,p=0;
for(int i=0;i<n;i++){
/*x[i][i]到x[i][n-1-i]*/
for(int j=i;j<n-i;j++){
x[i][j]=m++;
}
/*x[i+1][n-1-i]到x[n-1-i][n-1-i]*/
for(int j=i+1;j<n-i;j++){
x[j][n-1-i]=m++;
}
/*x[n-1-i][n-2-i]到x[n-1-i][i]*/
for(int j=n-2-i;j>i;j--){
x[n-1-i][j]=m++;
}
/*x[n-2-i][i]到x[1+i][i]*/
for(int j=n-1-i;j>i;j--){
x[j][i]=m++;
}
}
for(int k=0;k<n;k++){
for(int l=0;l<n;l++){
cout<<x[k][l]<<'\t';
}
cout<<endl;
}
return 0;
}