给你一个整数n,按要求输出n∗n的回型矩阵
输入 4
输出 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7
#include <bits/stdc++.h>
using namespace std;
int s[30][30];
int main (){
int n;
scanf ("%d",&n);
int c = 0,o = 0,u = n - 1;
while (c < n * n){
for (int i = o;i <= u;i++)
s[o][i] = ++c;
for (int i = o + 1;i <= u;i++)
s[i][u] = ++c;
for (int i = u - 1;i >= o;i--)
s[u][i] = ++c;
for (int i = u - 1;i >= o + 1;i--)
s[i][o] = ++c;
o++;
u--;
}
for (int i = 0;i < n;i++){
for (int j = 0;j < n;j++){
printf ("%d ",s[i][j]);
}
printf ("\n");
}
return 0;
}
本题只需用while判断c等不等于n*n,再用四个for来输入右,下,左,上这个方向的数字,再输出就ok了
for (int i = o;i <= u;i++)//向右
s[o][i] = ++c;
for (int i = o + 1;i <= u;i++)//向下
s[i][u] = ++c;
for (int i = u - 1;i >= o;i--)//向左
s[u][i] = ++c;
for (int i = u - 1;i >= o + 1;i--)//向上
s[i][o] = ++c;
暂未启用评论功能。