二维数组简单讲解幻灯片_第1页
二维数组简单讲解幻灯片_第2页
二维数组简单讲解幻灯片_第3页
二维数组简单讲解幻灯片_第4页
二维数组简单讲解幻灯片_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、5.3 二维数组,二维数组的定义、引用、初始化 使用二维数组编程,1,2020/10/19,2,2020/10/19,3,2020/10/19,4,2020/10/19,5,2020/10/19,6,2020/10/19,7,2020/10/19,8,2020/10/19,9,2020/10/19,程序解析求矩阵中的最大值,将1个3*2的矩阵存入1个3*2的二维数组中,找出最大值以及它的行下标和列下标,并输出该矩阵。 变量说明: row 记录最大值的行下标 col 记录最大值的列下标 arowcol 即为最大值,10,2020/10/19,11,2020/10/19,12,2020/10/19

2、,13,2020/10/19,14,2020/10/19,15,2020/10/19,int main(void) int row,col,i,j; int a32; printf(Enter 6 integers:n) ; for(i = 0; i arowcol) row = i; col = j; printf(max=a%d%d=%dn,row,col,arowcol); return 0; ,Enter 6 integers: 3 2 10 -9 6 -1 3 2 10 -9 6 -1 max = a10 = 10,源程序,P9,i j aij 输入 0 0 a00=3 0 1 a0

3、1=2 1 0 a10=10 1 a11=-9 2 0 a20=6 1 a21-1 输出 0 0 a00=3 0 1 a01=2 1 0 a10=10 1 1 a11=-9 2 0 a20=6 1 a21=-1 最大值 i j aij arowcol 0 0 3 a00=3 0 1 2 a00=3 1 0 10 a10=10 1 1 -9 a10=10 2 0 6 a10=10 2 1 -1 a10=10,16,2020/10/19,二维数组的定义和引用,1、定义 类型名 数组名行长度列长度 int a32; 定义一个二维数组a,3行2列,共6个元素 int b510; 定义一个二维数组a,5

4、 行 10 列, 共50 个元素,17,2020/10/19,2、引用,先定义,后使用 数组元素的引用: 数组名行下标 列下标 行下标和列下标:整型表达式 行下标的取值范围是0,行长度-1 列下标的取值范围是0,列长度-1 int a32; 3 行 2 列, 共6 个元素 a00 a01 a10 a11 a20 a21,注:下标不要越界,18,2020/10/19,二维数组在内存中的存放方式,int a32; 3 行 2 列, 6 个元素 表示1个3行2列的矩阵 a00 a01 a10 a11 a20 a21,二维数组的元素在内存中按行/列方式存放 a00 a01 a10 a11 a20 a2

5、1,19,2020/10/19,二维数组的初始化,1、分行赋初值 int a33 = 1,2,3,4,5,6,7,8,9; static int b43 = 1,2,3, ,4,5;,数组a 1 2 3 4 5 6 7 8 9,数组b 1 2 3 0 0 0 4 5 0 0 0 0,2、顺序赋初值 int a33 = 1,2,3,4,5,6,7,8,9; static int b43 = 1,2,3,0,0,0,4,5;,20,2020/10/19,省略行长度 对全部元素都赋初值 int a 3=1,2,3,4,5,6,7,8,9; 或分行赋初值时,在初值表中列出全部行 static int

6、b 3=1,2,3,4,5, 建议不要省略!,数组a 1 2 3 4 5 6 7 8 9,数组b 1 2 3 0 0 0 4 5 0 0 0 0,21,2020/10/19,使用二维数组编程,行下标和列下标分别作循环变量, 通过二重循环,遍历二维数组 通常将行下标作为外循环的循环变量 列下标 内循环,【例7-5】,22,2020/10/19,定义1个 3*2 的二维数组a,数组元素的值由下式给出,按矩阵的形式输出a数组。 aij = i + j(0i2,0j1),生成一个矩阵并输出,int a32; a00 a01 a10 a11 a20 a21,计算各数组元素的值 0 1 1 2 2 3,写

7、出源程序!,23,2020/10/19,#include int main(void) int i, j; int a32; for(i = 0; i 3; i+) for(j = 0; j 2; j+) aij = i + j; for(i = 0; i 3; i+) for(j = 0; j 2; j+) printf(%4d, aij); printf(n); return 0; ,i = 0 j = 0 a00=0 i = 0 j = 1 a01=1 i = 1 j = 0 a10=1 i = 1 j = 1 a11=2 i = 2 j = 0 a20=2 i = 2 j = 1 a2

8、1=3,源程序,0 1 1 2 2 3,/二维数组的输入,/二维数组的输出,24,2020/10/19,自定义函数day_of_year(year, month, day),计算并返回年year、月month和日day所对应的是该年第几天。 day_of_year(2000, 3, 1) 返回61 day_of_year(1981, 3, 1) 返回60 分析: 月 0 1 2 3 11 12 非闰年 0 31 28 31 30 31 闰年 0 31 29 31 30 31,日期计算二维数组方式,int tab213= 0,31, 28, 31, 30,31,30,31,31,30,31, 3

9、0,31, 0,31, 29, 31, 30,31,30,31,31,30,31, 30,31 ,利用二维数组分别表示非闰年和闰年,25,2020/10/19,源程序,int day_of_year(int year, int month, int day) int k, leap; int tab213= 0,31, 28, 31, 30,31,30,31,31,30,31, 30,31, 0,31, 29, 31, 30,31,30,31,31,30,31, 30,31 ; leap = (year%4=0 ,函数调用:day_of_year(2000, 3, 1) 返回61,k tableapk day 1 tab11=31 1+31=32 2 tab12=29 32+29=61 3退出循环,26,2020/10/19,27,课堂作业,编写main函数,调用day_of_year函数,分别输入闰年和非闰年的年、月、日进行调试,以验证程序的正确性。 输入输出格式:,请输入年:2000 请输入月:3 请输入日:1 2000.3.1是当年的第61天。,202

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论