回形方阵
题目如下
下面为解题过程:
我是按照一圈一圈的思路给每一层赋值的;
k为圈数;
#include <stdio.h>
int main() {
int n1;
scanf("%d\n", &n1);
int n2 = n1;
int a[n1][n1];
memset(a, 0, sizeof(a));
int i = 0;
int j = 0;
int k = 0;
while(n2){
for (j = k; j < n1 - 1 - k; j++) {
a[i][j] = k + 1;
}
for (i = k; i <n1 - 1 - k; i++ ) {
a[i][j] = k + 1;
}
for (j = n1 - 1 - k; j >= k; j--) {
a[i][j] = k + 1;
}
j++;
//printf("%d\n", j);
for (i = n1 - 1 - k; i >= k; i--) {
a[i][j] = k + 1;
}
k++;
i = k;
//printf("%d\n", i);
n2--;
}
for (i = 0; i < n1; i++) {
for (j = 0; j < n1 - 1; j++) {
printf("%d ", a[i][j]);
}
printf("%d\n", a[i][j]);
}
return 0;
}