【问题描述】 创建n阶螺旋矩阵并输出。
输入描述:输入包含多个测试用例,每个测试用例为一行,包含一个正整数n(1≤n≤50),以输入0表示结束。
输出描述:每个测试用例输出n行,每行包括n个整数,整数之间用一个空格分隔。
#include<iostream>
using namespace std;
int num = 1;//全局变量记录num的自增
int n;//矩阵的阶数
int i;//表示的是行
int j;//表示的是列
int m;
int value[100][100] = { 0 };//此数组的最大的阶数是100 * 100
int main(){
cin >> n;
for (int m = 0; m < n / 2; m++){
for (i = m; i < n - m ; i++) //表示的是螺旋矩阵的上面
value[m][i] = num++;
for (j = m + 1; j < n - m - 1; j++)
value[j][n - m - 1] = num++;
for (i = n - m - 1; i >= m; i--)
value[n - m - 1][i] = num++;
for (j = n - m - 2; j >= m + 1; j--)
value[j][m] = num++;
}
if (n % 2 == 1)
value[n / 2][n / 2] = n*n;
//遍历输出矩阵
for (int i = 0; i < n; i++){
for (int j = 0; j < n; j++)
cout << value[i][j] << " ";
cout << "\n";
}
system("pause");
return 0;
}