题目
给出一个不大于 9 的正整数 n,输出 n×n 的蛇形方阵。从右上角填上 1 开始,逆时针方向依次填入数字,如同样例所示。注意每个数字都右对齐,中间用空格隔开。
例如:
输入:4
输出:
4 3 2 1
5 14 13 12
6 15 16 11
7 8 9 10
代码
#include<stdio.h>
int main(){
int n,i,j;
int k=0;
scanf("%d",&n);
int a[10][10];
int x=1,y=0;
for(i=1;i<=n;i++){
for(j=n;j>=1;j--){
a[i][j] = 0;
}
}
while( k < n*n){
while(y<n&&a[x][y+1]==0){
a[x][++y] = ++k;
}
while(x<n&&a[x+1][y]==0){
a[++x][y] = ++k;
}
while(y>1&&a[x][y-1]==0){
a[x][--y] = ++k;
}
while(x>1&&a[x-1][y]==0){
a[--x][y] = ++k;
}
}
for(i = 1; i<= n; i++){
for(j = n; j >= 1; j--){
printf("%3d",a[i][j]);
}
printf("\n");
}
return 0;
}
标签:10,int,C语言,--,while,蛇形,方阵
From: https://www.cnblogs.com/Shin404/p/16902779.html