实现输出10*10以内的数字旋转方阵,如果需要修改输出的方阵的大小可以改变N的值
#include<iostream>
using namespace std;
const int N= 10;
int dt[N][N] = { 0 };
void full(int number, int begin, int size);
int main()
{
int n;
cin >> n;
full(1, 0, n);
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
cout << dt[i][j] << '\t';
cout << endl;
}
return 0;
}
void full(int number, int begin, int size)
{
if (size == 0)
return;
if (size == 1)
{
dt[begin][begin] = number;
return;
}
int i, j;
i = begin;
j = begin;
for (int k = 0; k < size - 1; k++)
{
dt[i][j] = number;
number++;
i++;
}
for (int k = 0; k < size - 1; k++)
{
dt[i][j] = number;
number++;
j++;
}
for (int k = 0; k < size - 1; k++)
{
dt[i][j] = number;
number++;
i--;
}
for (int k = 0; k < size - 1; k++)
{
dt[i][j] = number;
number++;
j--;
}
full(number, begin + 1, size - 2);
}
运行结果: