#include
<stdio.h>
void funct(int n)
{
int a[n][n];
int i,j,round = 1;
int m = 1;
// 最上面的一行
for (j = 0; j < n; j++) {
a[0][j] = m++;
}
for (i = n-1; i >= n/2; i--) {
for (j = round; j <= i; j++) {
a[j][i] = m++;
}
for (j = i; j >= round; j--) {
a[i][j-1] = m++;
}
for (j = i; j > round; j--) {
a[j-1][round-1] = m++;
}
for (j = round; j < i; j++) {
a[round][j] = m++;
}
round++; // 控制边界大小
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf(" %3d",a[i][j]);
}
printf("\n");
}
}
int main(int argc, const char * argv[]) {
int n;
printf("请输入:");
scanf("%d",&n);
funct(n);
return 0;
void funct(int n)
{
int a[n][n];
int i,j,round = 1;
int m = 1;
// 最上面的一行
for (j = 0; j < n; j++) {
a[0][j] = m++;
}
for (i = n-1; i >= n/2; i--) {
for (j = round; j <= i; j++) {
a[j][i] = m++;
}
for (j = i; j >= round; j--) {
a[i][j-1] = m++;
}
for (j = i; j > round; j--) {
a[j-1][round-1] = m++;
}
for (j = round; j < i; j++) {
a[round][j] = m++;
}
round++; // 控制边界大小
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf(" %3d",a[i][j]);
}
printf("\n");
}
}
int main(int argc, const char * argv[]) {
int n;
printf("请输入:");
scanf("%d",&n);
funct(n);
return 0;
}
2万+

被折叠的 条评论
为什么被折叠?



