//写一个蛇型数组
/*
  1  2  3  4  5  6
  20 21 22 23 24 7
  19 32 33 34 25 8
  18 31 36 35 26 9
  17 30 29 28 27 10
  16 15 14 13 12 11
 */
//书写思路: 利用二维数组,一圈是四个边,仅需要记录每个边的起始坐标,和终点坐标,就可以用循环分别遍历四条边,进行赋值。
//代码逻辑:

//写一个蛇型数组
/*1  2  3  4  5  620 21 22 23 24 719 32 33 34 25 818 31 36 35 26 917 30 29 28 27 1016 15 14 13 12 11*/
//书写思路: 利用二维数组,一圈是四个边,仅需要记录每个边的起始坐标,和终点坐标,就可以用循环分别遍历四条边,进行赋值。
//代码逻辑:
#include<stdio.h>
#define N 6   //定义一个六行六列的数组
int main()
{int arr[N][N] = {0};//定义一个二维行列式int x1 = 0, y1 = 0;//起点坐标int x2 = 0, y2 = 0;//终点坐标int num = 1;//起始数 1-36  /6*6=36     //一共三圈int n = 0;//表示表示每一圈起始的坐标点 第一圈0,0,第二圈1,1,第三圈2.2//上边设置代码:while (1){x1 = n, y1 = n;//起点坐标0.0x2 = x1, y2 = N - 1 - n;//终点坐标N是数组行数,比如第一行结束;(0,6-1-0)坐标(0,5)//设置上行int i = x1, j = y1;for (j = y1; j <= y2; j++)//注意:表达式3完了后j++为6arr[x1][j] = num++;//i是x1行不变,j向左随着num自增//右边设置代码  6往下为7//起点坐标x1 = n + 1, y1 = j - 1;   //也就是坐标(1,6-1)==(1,5)也就是7的坐标x2 = N - 1 - n, y2 = y1;//终点坐标for (i = x1; i <= x2; i++)arr[i][y1] = num++;//保持列不变,让行随num自增//底边//同理      结束时上面有x1=i=6(表达式3中i++已经执行了)x1 = j - 1, y1 = y1 - 1;  //运用码的相似性很快写出12的坐标(6-1,5-1)=(5,4)x2 = x1, y2 = n;for (j = y1; j >= y2; j--)arr[x1][j] = num++;//左x1 = x1 - 1, y1 = n;x2 = n + 1, y2 = y1;//规律取决于nfor (i = x1; i >= x2; i--)arr[i][y1] = num++;if (num > N * N) break;//用num<36循环来限制循环n++;}int i, j;for (i = 0; i < N; i++){for (j = 0; j < N; j++)printf(" %3d", arr[i][j]);//设置多次打印putchar('\n');//每一行换行,注意这是一个字符要用''号}return 0;
}

写一个蛇型数组(蛇形填数)相关推荐

  1. 2020年第十一届蓝桥杯 - 省赛 - C/C++大学生A组 - C.蛇形填数

    2020年第十一届蓝桥杯 - 省赛 - C/C++大学生A组 - C.蛇形填数 Ideas 这题其实严格意义上属于一道找规律的题目,并不是啥算法题. 我们可以先按照它的规律多写几行. 1 2 6 7 ...

  2. 2020年第十一届蓝桥杯 - 省赛 - Python大学组 - D.蛇形填数

    这道题同样还是: 2020年第十一届蓝桥杯 - 省赛 - C/C++研究生组 - D.蛇形填数 2020年第十一届蓝桥杯 - 省赛 - Java研究生组 - D.蛇形填数 Ideas 这题其实严格意义 ...

  3. 第十一届蓝桥杯A组省赛填空试题 C: 蛇形填数(Java)

    试题 C: 蛇形填数 本题总分:10 分 [问题描述] 如下图所示,小明用从 1 开始的正整数"蛇形"填充无限大的矩阵. 容易看出矩阵第二行第二列中的数是 5.请你计算矩阵中第 2 ...

  4. 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字

    package demo;import java.util.Arrays;/** 题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字.*/ //num ...

  5. 数组-接口2-参数为一个整型数组和数组长度的整数(该数组输入和运算结果),再加一个整数;预期结果是一个整型数组

    测试接口的代码说明 适用接口:参数为一个整型数组和数组长度的整数(该数组输入和运算结果),再加一个整数:预期结果是一个整型数组 测试接口的具体代码如下: 注意红色字体,用后续小节中的接口进行替换,进行 ...

  6. 信息学奥赛一本通 2045:【例5.13】蛇形填数

    [题目链接] ybt 2045:[例5.13]蛇形填数 [题目考点] 1. 二维数组 2. 方向数组(可能用到) int dir[4][2] = {{1,0},{0,-1},{-1,0},{0,1}} ...

  7. 信息学奥赛一本通(2045:【例5.13】蛇形填数)

    2045:[例5.13]蛇形填数 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 374     通过数: 191 [题目描述] 在n×nn×n方阵里填入1,2,3 ...

  8. 蓝桥杯真题——蛇形填数(c语言)

    目录 一.题目描述 二.解题思路 三.程序操作 一.题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可. 如下图所示,小明用从 1 开始的正整数"蛇形" ...

  9. 第十一届蓝桥杯大赛省赛真题-填空题-蛇形填数(Java实现)

    试题 C: 蛇形填数 本题总分:10 分 [问题描述] 如下图所示,小明用从 1 开始的正整数"蛇形"填充无限大的矩阵. 容易看出矩阵第二行第二列中的数是 5.请你计算矩阵中第 2 ...

最新文章

  1. 前端、云与人工智能的碰撞 | GDG广州
  2. 机器学习和深度学习学习资料
  3. 为什么苹果6没有录屏_为什么苹果手机受欢迎?因为没有一部安卓手机是“干净”的...
  4. satd残差_RDO、SAD、SATD、λ相关概念【转】
  5. mac安装thrift
  6. ======第一章操作系统引论======
  7. 什么是lambda(函数)?
  8. Mac下Tomcat乱码的问题
  9. Integer类的缓存机制
  10. BI系统AWS云迁移方案设计(通用)
  11. 台式机电源选购资料调研+为什么50%的时候负载功率最大+80PLUS的解释
  12. 附合导线坐标计算例题_附合导线坐标计算
  13. AD8302 幅度相位检测 鉴幅鉴相器 解调对数放大器 原理图PCB
  14. matlab计算加减乘除,matlab计算矩阵的加减乘除以及逆
  15. c语言delay和while,c语言中delay的用法
  16. 大数据早报:Firebase推出机器学习功能 英伟达大幅扩大深度学习学院规模(11.2)
  17. npm安装慢 ,卡在sill idealTree buildDeps不动
  18. driver转httpClient
  19. UA PHYS515A 电磁理论IV 时变电磁场理论3 电磁场的能量守恒
  20. AI周报丨《2021年人工智能专利综合指数报告》近日发布;北大团队提出基于卷积神经网络的全光计算,超快、超低能耗

热门文章

  1. 互联网名词有哪些?读了这篇就够了
  2. 讯飞智能语音鼠标G50:AI语音、转写翻译、记录截图一键搞定!
  3. Springboot集成datax方案小记
  4. 网易之小易最近在数学课上学习到了集合的概念,集合有三个特征:1.确定性 2.互异性 3.无序性.需要根据给定的w,x,y,z,求出集合中一共有多少个元素。
  5. 百度智能云落子贵阳,工业互联网进入新赛段
  6. 你是谁的蘑菇,你的蘑菇又在哪?
  7. Unity GL函数库的简单使用
  8. 单字节和双字节的转换
  9. CSS3 盒子设置border和padding不撑开盒子
  10. 怎么提醒自己每晚睡前喝牛奶