C语言:实现蛇形数组
首先我们先看一下蛇形数组是什么
那么我们要实现这个数组,怎么实现呢?
我们可以看到,它每一圈的数字都是依次加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语言:实现蛇形数组相关推荐
- 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 ...
- 【C语言】数字直角三角形,数字矩阵,蛇形数组
寒假也要好好学习啊,今天和TT一起来看看数字之间三角形和蛇形数组的写法吧. 先看看这个简单的,这是一个给定边长的等腰直角数字三角形.像这种还是比较简单的. 分析:两种方法:一种是用数组,还有一种是直接 ...
- c语言中字符串数组的地址存放以及%s输出单个字符导致程序崩溃的问题
代码 总结下c语言中字符串数组的地址存放问题 #include <iostream> using namespace std; #include<bits/stdc++.h>i ...
- c语言程序设计歌手大奖赛,C语言二维数组怎么做:设计青年歌手参加歌曲大奖赛计分系统: 共...,怎样用c语言程序设计? 青年歌手参加歌曲大奖赛,有10个评委...
导航:网站首页 > C语言二维数组怎么做:设计青年歌手参加歌曲大奖赛计分系统: 共...,怎样用c语言程序设计? 青年歌手参加歌曲大奖赛,有10个评委 C语言二维数组怎么做:设计青年歌手参加歌曲 ...
- c++把数组所有元素剔除_C语言基础之数组,第一节,C语言必学知识点剖析
本文约1600字,主要讲了C语言基础之数组.数组又可分为数值数组.字符数组.指针数组.结构数组等各种类别.本文主要讲了数组的基础概念,一维数组的定义和引用. 带你进入C语言的世界,入门C语言,后边将持 ...
- C语言在一个有序数组里插入一个元素,使其成为一个新的有序数组
C语言在一个有序数组里插入一个元素,使其成为一个新的有序数组 #include<stdio.h> int main(){int a[11] = { 1,5,8,9,25,26,31,35, ...
- C语言求3x3数组对角线元素之和
C语言求3x3数组对角线元素之和 #include <stdio.h> int main() {int i, j,sum=0;int a[3][3];for (i = 0; i < ...
- C语言用char数组存储一串整数时的一个陷阱
C语言用char数组存储一串整数时的一个小陷阱 C语言的一个关于char数组的小Tip 一.问题起源 二.问题代码 三.问题分析 (一).运行分析 (二).可能的解决方案 四.问题总结(不想看长篇大论 ...
- C语言基础:数组作为函数参数传递演示源码
将做工程过程中常用的内容片段记录起来,如下内容内容是关于C语言基础:数组作为函数参数传递演示的内容,应该能对小伙伴也有好处. #include <stdio.h>void show_arr ...
最新文章
- 使用最小堆优化Dijkstra算法
- {网络编程}和{多线程}应用:基于TCP协议【实现多个客户端发送文件给一个服务器端】--练习
- 比特币交易手续费_投资人跑步进军比特币,OKEx交易手续费最高打6折
- 单片机/嵌入式软件架构分层思想
- IOS UITextView自适应高度
- java中的账户冻结原理_java可重入锁(ReentrantLock)的实现原理
- 易语言客户端请求http_HTTP的重点问题
- hdu1010 Tempter of the Bone---DFS+奇偶剪枝
- Vue 导出excel 导出多个sheet
- ubuntu安装opencv4.X+opencv_contrib教程(c++)
- http报文格式详解!
- 读河南干旱帖有感而发的一天(20191006)
- 小伙伴要我给他介绍一些非常酷炫而有趣又容易上手的前端框架
- 如何在mac版chrome安装第三方插件
- [附源码]Nodejs计算机毕业设计汽车维修服务系统Express(程序+LW)
- CAS算法-实现原理
- SQLmap 扫描工具的使用
- mysql 入库乱码,如何解决mysql中文入库乱码问题
- IOS 图标背景是黑色
- C1任务一01-信息编码