《C语言ch062二维数组.pptx》由会员分享,可在线阅读,更多相关《C语言ch062二维数组.pptx(33页珍藏版)》请在人人文库网上搜索。

1、2020/11/11,1,上一节我们学到了,一维数组的声明、初始化、赋值及元素引用 一维数组的排序、逆置,2020/11/11,2,第六章 利用数组处理批量数据,2020/11/11,3,6.1 怎样定义和引用一维数组 6.2 怎样定义和引用二维数组 6.3 字符数组,内容Contents,2020/11/11,4,6.2.1 怎样定义(声明)二维数组,C支持多维数组。 比如,一个二维数组的创建 type arrayName行数列数; 如:float a36; 定义1个float型二维数组a,3行6列,18个元素 int b510; 定义1个int型二维数组a,5 行 10 列, 50 个元素。

2、,2020/11/11,5,二维数组的理解,二维数组可被看作是一种特殊的一维数组: 二维数组包含行数个子数组 每个子数组包含列数个元素 例如int a23,a包含2个子数组:a0、a1 a0和a1都是包含3个元素的一维数组,a0,a1,2020/11/11,6,内存图示,6,2,a0,a12,int a23 = 1,2,3,4,5,6;,1,3,4,5,6,a11,a10,a02,a01,a00,a1,a,a,a0,a1, 定义了一个有10个int类型元素的数组 a的类型可以看作int10(只是看作,语法并不允许这么定义: int10 a) int a2010; 定义了一个有20个int10类。

3、型元素数组 a0、 a1a9的类型是int10, a00、 a01a199的类型是int int a302010; 这个呢? 这种特性决定了数组元素在内存的分布规律,也解释了数组的很多语法现象,2020/11/11,8,6.2.2 怎样引用二维数组的元素,先定义,后使用 数组元素的引用:数组名行下标 列下标 行下标和列下标:整型表达式 行下标的取值范围是0,行长度-1 列下标的取值范围是0,列长度-1 int a32; 3 行 2 列, 6 个元素 a00 a01 a10 a11 a20 a21 注意下标不要越界,2020/11/11,9,6.2.3 二维数组的初始化,int a34 = 1,。

4、 2, 3, 4,5, 6, 7, 8,9, 10, 11, 12 ; 相当于 int a34 = 1,2,3,4,5,6,7,8,9,10,11,12; / 不推荐,2020/11/11,10,6.2.3 二维数组的初始化,int a34 = 1,5,9 ;等价于 int a34 = 1,0,0,0,5,0,0,0,9,0,0,0 ;,2020/11/11,11,6.2.3 二维数组的初始化,int a34 = 1,5,6 ;相当于 int a34 = 1,5,6,0 ;,2020/11/11,12,6.2.3 二维数组的初始化,int a34 = 1,2,3,4,5,6,7,8,9,10,。

5、11,12; 等价于: int a 4 = 1,2,3,4,5,6,7,8,9,10,11,12; int a4 = 0,0,3,0,0,10 ;/合法,只有第一维长度可以省略,但不推荐 int a = 0,0,3,0,0,10 ;/不合法,int a34; a00 = 1; a01 = 2; a02 = 3; a03 = 4; a10 = 5; a11 = 6; a12 = 7; a13 = 8; a20 = 9; a21 = 10; a22 = 11; a23 = 12;,2020/11/11,13,int a34; int i, j; for (i=0; i3; +i) for (j=0。

6、; j4; +j) aij = i * 4+ j + 1;,2020/11/11,14,6.2.4 二维数组程序举例,例6.4 将一个二维数组行和列的元素互换,存到另一个二维数组中。(矩阵转置),2020/11/11,15,解题思路: 可以定义两个数组:数组a为2行3列,存放指定的6个数 数组b为3行2列,开始时未赋值 将a数组中的元素aij存放到b数组中的bji元素中 用嵌套的for循环完成,2020/11/11,16,#include int main() int a23 = 1, 2, 3, 4, 5, 6 ; int b32,i,j; printf(array a:n); for (i。

7、=0; i2; i+) for (j=0; j3; j+) printf(%5d, aij); bji = aij; printf(n); ,printf(array b:n); for (i=0; i3; i+) for (j=0; j2; j+) printf(%5d, bij); printf(n); return 0; ,2020/11/11,17,例6.5 如何找出矩阵中最大值所在的位置?,将1个3*2的矩阵存入1个3*2的二维数组中,找出最大值以及它的行下标和列下标,并输出该矩阵。 思路: row 记录最大值的行下标 col 记录最大值的列下标 最大值就是 arowcol,2020。

8、/11/11,18,#include int main(void) int row, col, i, j; int a32; printf(Enter 6 integers:n); for (i = 0; i 3; i+) for (j = 0; j 2; j+) scanf(%d, ,row = col = 0; for(i = 0; i arowcol) row = i; col = j; printf(max = a%d%d = %dn, row, col, arowcol); return 0; ,6_5_MatMax.c,2020/11/11,19,2020/11/11,20,N阶方。

9、阵用二维数组表示: int aNN; 其中,N是正整数 每个元素:aij,其中i、j的取值范围0,N-1 下标的对应关系: a00 a01 a02 主对角线 a10 a11 a12 上三角 a20 a21 a22 下三角 副对角线,用二维数组表示方阵,i=j i=j i+j=N-1,21,方阵原地转置,Q:如何将1个n*n的方阵转置(行列互换)后输出 ? 分析:int a33;,#include int main(void) int i, j, temp; int a33 = 1, 2, 3, 4, 5, 6, 7, 8, 9 ; printf(original array:n); for (。

10、i = 0; i 3; i+) for (j = 0; j 3; j+) printf(%5d, aij); printf(n); ,源程序,/ 行列互换 for (i = 1; i 3; i+) / 只遍历除主对角线的下三角阵 for (j = 0; j i ; j+) temp = aij; aij = aji; aji = temp; printf(reversed array:n); for (i = 0; i 3; i+) for (j = 0; j 3; j+) printf(%5d, aij); printf(n); return 0; ,#include int main(vo。

11、id) int i, j, temp; int a33 = 1, 2, 3, 4, 5, 6, 7, 8, 9 ; printf(original array:n); for (i = 0; i 3; i+) for (j = 0; j 3; j+) printf(%5d, aij); printf(n); ,源程序,/ 行列互换 for (i = 0; i 3; i+) for (j = 0; j 3; j+) temp = aij; aij = aji; aji = temp; printf(reversed array:n); for (i = 0; i 3; i+) for (j = 。

12、0; j 3; j+) printf(%5d, aij); printf(n); return 0; ,这个程序的输出是?,2020/11/11,24,1 2 3 4 5 6 7 8 9,思考互换之后数组a变为?,i=0 1 4 7 2 5 6 3 8 9,i=1 1 2 7 4 5 8 3 6 9,i=2 1 2 3 4 5 6 7 8 9,/ 行列互换 for (i = 0; i 3; i+) for (j = 0; j 3; j+) temp = aij; aij = aji; aji = temp; ,2020/11/11,25,思考,矩阵的加法怎么实现?,2020/11/11,26,这一节我们学到了,二维数组的定义、初始化和引用 基本的矩阵运算,2020/11/11,27,作业,P168 习题2、4、6、8 周三(17号)8:00之前提交到ftp服务器,2020/11/11,28,2020/11/11,29,2020/11/11,30,2020/11/11,31,2020/11/11,32,2020/11/11,33。

062是c语言常量吗,C语言ch062二维数组.pptx相关推荐

  1. c语言实验7字符串,C语言实验六(第七章二维数组字符串数组)

    C语言实验六(第七章二维数组字符串数组) 第 1 页 共 7 页第七章二维数组.字符串数组题[书面作业] 以书面作业形式上交,2010 年 11 月 1 日课堂交三道题的源程序1. 编写一个主函数:用 ...

  2. 【IT】C语言函数中怎么返回一个二维数组

    C语言函数中怎么返回一个二维数组

  3. C语言编写杨辉三角(二维数组方法)

    C语言实现杨辉三角(二维数组) 杨辉三角是什么 杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的<详解九章算法>一书中出现.在欧洲,帕斯卡(1623--- ...

  4. android数据存放map_go语言学习笔记(18)-二维数组和map

    二维数组 二维数组在声明/定义时有对应四种写法(类似一维数组) var 数组名 [大小][大小]类型 = [大小][大小]类型{{初值...},{初值...}} var 数组名 [大小][大小]类型 ...

  5. C语言中的二级指针和二维数组问题

    关于二级指针和二维数组两者差别很大,不可以直接用二级指针传递二维数组 首先来看看二维数组在内存中是如何组织的呢? 一维数组 T arr1 = new T[9]  二维数组T arr2 = new T[ ...

  6. 3 5的二维数组C语言程序,C语言及程序设计提高例程-33 二维数组元素的引用

    贺老师教学链接  C语言及程序设计提高 本课讲解 输入输出二维数组元素 #include int main() { int s[3][5], i, j; printf("Input 3*5 ...

  7. c语言二维函数杨辉三角,C语言编写杨辉三角(二维数组方法)

    C语言实现杨辉三角(二维数组) 杨辉三角是什么 杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的<详解九章算法>一书中出现.在欧洲,帕斯卡(1623--- ...

  8. 【C语言】案例三十三 【二维数组】神奇魔方阵

    害,神奇魔方阵.让我想起了我做过的快乐暑假······ 案例描述 古代又称"纵横图",就是指由自然数组成的方阵.编程要求实现一个5行5列的魔方阵. 必备知识 二维数组的定义与初始化 ...

  9. cout 数组_C语言学习笔记(十)二维数组内存预设

    1 问题描述 二维数组存储数据数量根据其他方法间接获得: 为当前数据数量申请内存: 2 相关程序 #include --2020.11.23--

最新文章

  1. Matlab数据的可视化 -- 图形格式的设置
  2. Jmeter简单应用6
  3. CodeForces - 1110G Tree-Tac-Toe(博弈+构造)
  4. 计算结构体、数组、指针的sizeof
  5. 前后端分离的项目部署到tomcat_如何在开发时部署和运行前后端分离的JavaWeb项目...
  6. spring boot集成Quartz实现定时任务
  7. Python的WSGI
  8. salt 源码之 salt-minion启动过程
  9. 当前流行的PE系统最纯净、最轻量、最快捷
  10. 思维导图的绘制要点及使用GitMind工具快速制作思维导图
  11. 搭建自己的ngrok服务(内网穿透 使用简单)
  12. 我的世界服务器怎么制作头颅,我的世界怎么刷生物头颅_生物头颅制作方法_游戏城...
  13. MATLAB冒号表达式
  14. OSI的7层模型和TCP/IP四层模型
  15. hdu 5148 Cities(树形背包)
  16. 【前端修炼场】 — 这些标签你学会了么?快速拿下 “hr”
  17. 人工智能创意赛—猫狗识别
  18. SpringBoot访问静态资源
  19. [bzoj1455]罗马游戏
  20. 多径效应、符号内干扰、符号间干扰ISI、ICI

热门文章

  1. 表白墙-JavaScript实现
  2. 从零开始在windows下使用QT根据点绘制图像
  3. 工具使用说明-IntelliJ IDEA快捷键
  4. 浏览器,服务器,浏览器和服务器之间的通信协议
  5. 【人工智能】25岁Java工程师如何转型学习人工智能?
  6. Toad 安装BMF出错 1603
  7. Slicer学习笔记(四十四)slicer 看到的原点在哪里
  8. 算法题——双指针(错题总结)
  9. 【可解释】|深层网络的公理化属性(Axiomatic Attribution for Deep Networks)
  10. Plug And AI角蜂鸟AI开发板在Ubuntu16.04下的安装和使用