c语言实现输出二维蛇形矩阵
来源:互联网 发布:黎明杀机淘宝刷血点 编辑:程序博客网 时间:2024/05/22 14:28
#include <malloc.h> #include <stdio.h> int main(void) { //用户输入的值,创建n*n的矩阵 int n; //蛇形从1开始计数 int count = 1; //a[x][y],x是二维数组的第一个下标,y是第二个。 //round是蛇形矩阵的第几圈,从0开始。 int x,y,round; scanf("%d",&n); int (*a)[n] = calloc(n*n,sizeof(int)); //如果n是1,则直接输出。 if(n == 1){ a[0][0] = count; }else{ //下面以n=5为例 //一共有2(5/2)圈蛇形 for(round=0; round<n/2; round++){ /* 以下循环执行后输出如下: 1 2 3 4 5 */ x = round; for(y=round;y<n-round;y++){ a[x][y]=count; count++; } /* 以下循环执行后输出如下: 1 2 3 4 5 6 7 8 */ y = n - round - 1; for(x=round+1;x<n-round-1;x++){ a[x][y]=count; count++; } /* 以下循环执行后输出如下: 1 2 3 4 5 6 7 8 13 12 11 10 9 */ x = n - round - 1; for(y=n-round-1;y>=round;y--){ a[x][y]=count; count++; } /* 以下循环执行后输出如下: 1 2 3 4 5 16 6 15 7 14 8 13 12 11 10 9 */ y = round; for(x=n-round-1-1;x>round;x--){ a[x][y]=count; count++; } } /* 上面的大循环执行后输出如下: 1 2 3 4 5 16 17 18 19 6 15 24 20 7 14 23 22 21 8 13 12 11 10 9 */ if(n%2 == 1){ //如果n值奇数,将最中间的空填上 a[n/2][n/2] = count; } } //打印矩阵 for(x=0;x<n;x++){ for(y=0;y<n;y++){ printf("%d ",a[x][y]); } printf("\n"); } printf("\n"); free(a); return 0; }
0 0
- c语言实现输出二维蛇形矩阵
- c实现输出二维蛇形矩阵
- C语言实现蛇形矩阵
- C语言实现蛇形输出
- C语言蛇形矩阵的输出
- C语言-蛇形矩阵
- 用C语言实现蛇形输出
- 递归法解决回式蛇形矩阵的输出(C语言的实现)
- C语言蛇形矩阵2
- C语言蛇形矩阵例题
- c语言写蛇形矩阵
- 二维数组蛇形和Z形矩阵输出
- c语言中的蛇形矩阵代码分享
- C语言-蛇形矩阵(2)
- 打印输出蛇形矩阵
- 蛇形矩阵的输出
- Java 输出蛇形矩阵
- 蛇形矩阵的实现(C++)
- eclipse 下maven 创建工程 catalog的问题
- CentOS下安装svn,添加新用户,重启svn服务(找到安装成功的案例)
- Session 4: Deploying a Virtual Machine from Horizon
- 【Android】Android6.0及以上不能读取外部存储问题
- 51单片机bit数据类型
- c语言实现输出二维蛇形矩阵
- Session 5: Managing OpenStack from the Command Line
- 【miscellaneous】MPEG2、MPEG4、H264的差异
- FPGA的IP软核、硬核以及固核
- Hadoop 解除 "Name node is in safe mode"
- 矩阵的理解
- 微信登录、分享到微信
- Session 6: Scaling Out Your OpenStack
- 编解码学习笔记(一):基本概念