首先我们先看一下蛇形数组是什么

那么我们要实现这个数组,怎么实现呢?
我们可以看到,它每一圈的数字都是依次加1的,那么就很容易想到用圈来实现,先算除要求的数组有多少圈,然后每一圈可以分为4个循环,两行两列

具体实现代码如下:

#include<stdio.h>
#include<stdlib.h>#define N 5void print_arr(int arr[N][N])
{int i = 0;int j = 0;for (i = 0; i < N; i++){for (j = 0; j < N; j++){printf("%5d", arr[i][j]);}printf("\n");}
}int main()
{int arr[N][N] = { 0 };//定义一个二维数组/*1.计算圈数*/int cir = (N + 1) / 2;int i = 0;//行数int j = 0;//列数int k = 0;//因为i在变 所以使用一个临时变量来代替ij = i;//第一圈从第一列开始 第二圈从第二行开始int num = 1;/*一圈4个循环*/for (k = 0; k < cir; k++){while (j < N - k){arr[i][j] = num++;j++;}j--;//j++使得j已经走到要打印的后面一个,所以进行j--i++;//使得i到下一行while (i < N - k){arr[i][j] = num++;i++;}i--;j--;while (j >= k){arr[i][j] = num++;j--;}j++;i--;while (i > k){arr[i][j] = num++;i--;}i++;j++;}print_arr(arr);system("pause");return 0;
}

运行结果如下图:

C语言:实现蛇形数组相关推荐

  1. c语言数组蛇形编程,C语言每天小练(二)——蛇形数组

    C语言每日小练(二)--蛇形数组 例:在n*n方阵里输入1,2,3,...,n*n,要求填成蛇形.例如n=4时方阵为: 10 11 12  1 9 16 13  2 8 15 14  3 7   6 ...

  2. 【C语言】数字直角三角形,数字矩阵,蛇形数组

    寒假也要好好学习啊,今天和TT一起来看看数字之间三角形和蛇形数组的写法吧. 先看看这个简单的,这是一个给定边长的等腰直角数字三角形.像这种还是比较简单的. 分析:两种方法:一种是用数组,还有一种是直接 ...

  3. c语言中字符串数组的地址存放以及%s输出单个字符导致程序崩溃的问题

    代码 总结下c语言中字符串数组的地址存放问题 #include <iostream> using namespace std; #include<bits/stdc++.h>i ...

  4. c语言程序设计歌手大奖赛,C语言二维数组怎么做:设计青年歌手参加歌曲大奖赛计分系统: 共...,怎样用c语言程序设计? 青年歌手参加歌曲大奖赛,有10个评委...

    导航:网站首页 > C语言二维数组怎么做:设计青年歌手参加歌曲大奖赛计分系统: 共...,怎样用c语言程序设计? 青年歌手参加歌曲大奖赛,有10个评委 C语言二维数组怎么做:设计青年歌手参加歌曲 ...

  5. c++把数组所有元素剔除_C语言基础之数组,第一节,C语言必学知识点剖析

    本文约1600字,主要讲了C语言基础之数组.数组又可分为数值数组.字符数组.指针数组.结构数组等各种类别.本文主要讲了数组的基础概念,一维数组的定义和引用. 带你进入C语言的世界,入门C语言,后边将持 ...

  6. C语言在一个有序数组里插入一个元素,使其成为一个新的有序数组

    C语言在一个有序数组里插入一个元素,使其成为一个新的有序数组 #include<stdio.h> int main(){int a[11] = { 1,5,8,9,25,26,31,35, ...

  7. C语言求3x3数组对角线元素之和

    C语言求3x3数组对角线元素之和 #include <stdio.h> int main() {int i, j,sum=0;int a[3][3];for (i = 0; i < ...

  8. C语言用char数组存储一串整数时的一个陷阱

    C语言用char数组存储一串整数时的一个小陷阱 C语言的一个关于char数组的小Tip 一.问题起源 二.问题代码 三.问题分析 (一).运行分析 (二).可能的解决方案 四.问题总结(不想看长篇大论 ...

  9. C语言基础:数组作为函数参数传递演示源码

    将做工程过程中常用的内容片段记录起来,如下内容内容是关于C语言基础:数组作为函数参数传递演示的内容,应该能对小伙伴也有好处. #include <stdio.h>void show_arr ...

最新文章

  1. 使用最小堆优化Dijkstra算法
  2. {网络编程}和{多线程}应用:基于TCP协议【实现多个客户端发送文件给一个服务器端】--练习
  3. 比特币交易手续费_投资人跑步进军比特币,OKEx交易手续费最高打6折
  4. 单片机/嵌入式软件架构分层思想
  5. IOS UITextView自适应高度
  6. java中的账户冻结原理_java可重入锁(ReentrantLock)的实现原理
  7. 易语言客户端请求http_HTTP的重点问题
  8. hdu1010 Tempter of the Bone---DFS+奇偶剪枝
  9. Vue 导出excel 导出多个sheet
  10. ubuntu安装opencv4.X+opencv_contrib教程(c++)
  11. http报文格式详解!
  12. 读河南干旱帖有感而发的一天(20191006)
  13. 小伙伴要我给他介绍一些非常酷炫而有趣又容易上手的前端框架
  14. 如何在mac版chrome安装第三方插件
  15. [附源码]Nodejs计算机毕业设计汽车维修服务系统Express(程序+LW)
  16. CAS算法-实现原理
  17. SQLmap 扫描工具的使用
  18. mysql 入库乱码,如何解决mysql中文入库乱码问题
  19. IOS 图标背景是黑色
  20. C1任务一01-信息编码

热门文章

  1. 法国内政部选择IDEMIA和Sopra Steria为其开发新标准边境管制系统
  2. Web前端-网站首页和注册界面的实现
  3. Bootstrap4使用教程
  4. 爬取94神马网的电影信息
  5. SDN控制器测试专题一:基础知识篇
  6. 控制器双活 负载均衡
  7. K8s NetworkPolicy与网络插件flannel、calico详细版
  8. Ankylosauridae OS
  9. 石墨文档入选「2021 数字经济产业 TOP100 榜单」
  10. Python多线程编程详解,文章比较长,需耐心浏览