c语言数字转圈

数字转圈

|------|---|---|---|
| 题干 | 输入整数 N(1≤N≤9),输出如下 N 阶方阵。 若输入5显示如下方阵: * 1** 2** 3** 4** 5* *16**17**18**19** 6* *15**24**25**20** 7* *14**23**22**21** 8* *13**12**11**10** 9* |||
| 输入样例 | 3 |||
| 输出样例 | * 1** 2** 3* * 8** 9** 4* * 7** 6** 5* |||

思路:

代码:

cpp 复制代码
#define M 9
#include<stdio.h>
void Print(int a[M][M],int n) {
	int i,j;
	for (i = 0; i < n; i++) {
		for (j = 0; j < n; j++) {
			printf("*%2d*", a[i][j]);
		}
		printf("\n");
	}
}
void fz(int a[M][M], int n) {
	int k, hang = 0, lie = 0, hangt, liet, fx=0, wy[4][2] = { {0,1},{1,0},{0,-1},{-1,0} };
	for (k = 1; k <= n*n; k++) {
		a[hang][lie] = k;
		hangt = hang + wy[fx][0];
		liet = lie + wy[fx][1];
		if (hangt >= n || liet >= n || hangt < 0 || liet < 0 || a[hangt][liet] != 0) {
			fx = (fx + 1) % 4;
			hangt = hang + wy[fx][0];
			liet = lie + wy[fx][1];
		}
		hang = hangt;
		lie = liet;
	}
}
int main() {
	int a[M][M] = { 0 },n;
	scanf("%d", &n);
	fz(a, n);
	Print(a, n);
	return 0;
}
相关推荐
YY_TJJ6 小时前
算法题——贪心算法
算法·贪心算法
C++ 老炮儿的技术栈6 小时前
include″″与includ<>的区别
c语言·开发语言·c++·算法·visual studio
RainbowC06 小时前
GapBuffer高效标记管理算法
android·算法
liu****6 小时前
10.queue的模拟实现
开发语言·数据结构·c++·算法
mit6.8246 小时前
10.17 枚举中间|图论
算法
shinelord明7 小时前
【大数据技术实战】Kafka 认证机制全解析
大数据·数据结构·分布式·架构·kafka
小龙报7 小时前
《彻底理解C语言指针全攻略(6)-- qsort、sizeof和strlen》
c语言·开发语言·职场和发展·创业创新·学习方法·业界资讯·visual studio
让我们一起加油好吗7 小时前
【基础算法】01BFS
数据结构·c++·算法·bfs·01bfs
孤狼灬笑7 小时前
机器学习十大经典算法解析与对比
人工智能·算法·机器学习
草莓工作室7 小时前
数据结构3:线性表2-顺序存储的线性表
数据结构·windows