博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
本文通过c语言实现九宫格。九宫格的难点在于如何创建矩阵,数字如何排列,在边界处如何处理。因此,本文主要有两个部分:二维动态数组实现任意奇数阶的矩阵;矩阵中数字的排列。
阅读量:4214 次
发布时间:2019-05-26

本文共 691 字,大约阅读时间需要 2 分钟。

C语言实现九宫格

本文通过c语言实现九宫格。九宫格的难点在于如何创建矩阵,数字如何排列,在边界处如何处理。因此,本文主要有两个部分:二维动态数组实现任意奇数阶的矩阵;矩阵中数字的排列。主要通过calloc实现矩阵的简建立,通过取余的思想实现数字的排列。

矩阵的实现

本文通过calloc函数实现了n阶矩阵,之所以选择calloc是因为这个函数能划分分配的空间,以及初始化。

int i;   int **a=(int **)calloc(n,sizeof(int *));   for(i=0;i

九宫格数字的排列

九宫格中数字以中下格(第三行、第二列(矩阵坐标为(2,1)))为起点,按右下为方向顺序填写(想象格子上下相连,左右相连),遇到右下格已占,填入正上方格内。

以3阶为例,在第三行、第三列处(即坐标为2,2),下一格即为第一行,第一列(即坐标为0,0)。程序通过取余的思想实现此过程。

i=(i+1+n)%n;	 j=(j+1+n)%n;

每移动一步就是坐标加1再对阶数取余,这样就保证了边界处的连接问题,加n是为了保证被除数一直为正,在(2,2)向(1,2)的过度正确。

实现代码

#include "stdafx.h"#include "stdlib.h"int **matrix(int n);int **jiugongge(int **q,int n);int main(){ int n; int i,j; int **p; int **t; scanf_s("%d",&n);p= matrix(n);t=jiugongge(p, n); for(i=0;i

3阶九宫格

5阶九宫格

转载地址:http://andmi.baihongyu.com/

你可能感兴趣的文章
蓝桥杯 2012 决赛 拼音字母
查看>>
Linux 虚拟环境找不到路径
查看>>
蓝桥杯 2012 C++B 决赛 方块填数
查看>>
C 字符串读入与取出空白符
查看>>
2013 蓝桥杯 C++ B决赛 高僧斗法(尼姆博弈)
查看>>
KMP实现
查看>>
蓝桥杯 2014 决赛 C++B组(4) 生物芯片(完全平方数)
查看>>
线段树 hdoj 1166 敌兵布阵
查看>>
线段树 hdoj 1754
查看>>
线段树习题
查看>>
POJ 1002 487-3279 模拟
查看>>
CodeForces 2018-6-1 div3 D. Points and Powers of Two
查看>>
C/C++ 位运算
查看>>
HDOJ 2045 LELE的RPG难题 递推
查看>>
HOOJ 2047 阿牛的EOF牛肉串 (递推)
查看>>
windows 下远程访问 远程主机ubuntuMysql数据库 遇到的问题
查看>>
STL使用
查看>>
python 用matplotlib 画图
查看>>
常用分类算法在不同样本下的选择
查看>>
python 使用 libsvm
查看>>