本文共 691 字,大约阅读时间需要 2 分钟。
本文通过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
转载地址:http://andmi.baihongyu.com/