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;
}
相关推荐
No0d1es4 小时前
电子学会青少年软件编程(C/C++)5级等级考试真题试卷(2024年6月)
c语言·c++·算法·青少年编程·电子学会·五级
大阳1236 小时前
线程(基本概念和相关命令)
开发语言·数据结构·经验分享·算法·线程·学习经验
weixin_307779137 小时前
VS Code配置MinGW64编译GNU 科学库 (GSL)
开发语言·c++·vscode·算法
学行库小秘7 小时前
ANN神经网络回归预测模型
人工智能·python·深度学习·神经网络·算法·机器学习·回归
没落之殇8 小时前
基于C语言实现的HRV分析方法 —— 与Kubios和MATLAB对比
算法
FPGA8 小时前
探讨4B/5B编码、8B/10B编码区别以及FPGA实现
数据结构
秋难降8 小时前
线段树的深度解析(最长递增子序列类解题步骤)
数据结构·python·算法
Peter_Deng.8 小时前
Linux 下基于 TCP 的 C 语言客户端/服务器通信详解(三个示例逐步进阶)
服务器·c语言·网络
楚韵天工8 小时前
基于GIS的无人机模拟飞行控制系统设计与实现
深度学习·算法·深度优先·无人机·广度优先·迭代加深·图搜索算法
你也向往长安城吗9 小时前
推荐一个三维导航库:three-pathfinding-3d
javascript·算法