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;
}
相关推荐
落魄君子10 分钟前
SVM分类-支持向量机(Support Vector Machine)
神经网络·算法·支持向量机·分类
小王爱吃月亮糖16 分钟前
补充--C++的项目结构和管理
数据结构·c++·笔记·学习
CSND74018 分钟前
Ubuntu vi(vim)编辑器配置一键补全main函数
linux·c语言·ubuntu·编辑器·vim
上理考研周导师1 小时前
【单片机原理】第1章 微机基础知识,运算器,控制器,寄存器,微机工作过程,数制转换
算法
Crazy learner1 小时前
C 和 C++ 动态库的跨语言调用原理
c语言·c++
IT猿手2 小时前
基于PWLCM混沌映射的麋鹿群优化算法(Elk herd optimizer,EHO)的多无人机协同路径规划,MATLAB代码
算法·elk·机器学习·matlab·无人机·聚类·强化学习
m0_675988237 小时前
Leetcode2545:根据第 K 场考试的分数排序
python·算法·leetcode
人才程序员7 小时前
QML z轴(z-order)前后层级
c语言·前端·c++·qt·软件工程·用户界面·界面
破-风7 小时前
leetcode---mysql
算法·leetcode·职场和发展
w(゚Д゚)w吓洗宝宝了7 小时前
C vs C++: 一场编程语言的演变与对比
c语言·开发语言·c++