哈工大c语言课件8

哈工大c语言课件8

ID:24796594

大小:8.16 MB

页数:49页

时间:2018-11-15

哈工大c语言课件8_第1页
哈工大c语言课件8_第2页
哈工大c语言课件8_第3页
哈工大c语言课件8_第4页
哈工大c语言课件8_第5页
资源描述:

《哈工大c语言课件8》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第8章数组哈尔滨工业大学计算机科学与技术学院本章学习内容对数组名特殊含义的理解数组类型,数组的定义和初始化向函数传递一维数组和二维数组排序、查找、求最大最小值等常用算法为什么使用数组(Array)?【例8.1】要读入10人的成绩,然后求平均成绩需定义10个不同名整型变量,需要使用多个scanf()intscore1,score2,…score10;scanf("%d",&score1);scanf("%d",&score2);......而用数组,可共用一个scanf()并利用循环语句读取int

2、score[10],i;for(i=0;i<10;i++){scanf("%d",&score[i]);}保存大量同类型的相关数据8.1一维数组的定义和初始化一维数组的定义存储类型数据类型数组名[整数1][整数2]……[整数n];a[9]a[8]a[7]a[1]a[0]…数组首地址inta[10];定义一个有10个int型元素的数组系统在内存分配连续的10个int空间给此数组直接对a的访问,就是访问此数组的首地址基类型下标从0开始8.1一维数组的定义和初始化a[9]a[8]a[7]a[1]a[0]…in

3、ta[10];数组大小必须是值为正的常量,不能为变量一旦定义,不能改变大小数组大小最好用宏来定义,以适应未来可能的变化#defineSIZE10inta[SIZE];一维数组的定义存储类型数据类型数组名[整数1][整数2]……[整数n];8.1一维数组的定义和初始化数组定义后的初值仍然是随机数一般需要我们来初始化inta[5]={12,34,56,78,9};inta[5]={0};inta[]={11,22,33,44,55};8.1一维数组的定义和初始化数组的引用数组名[下标]数组下标(index)

4、都是从0开始使用a[0]、a[1]、a[2]、……、a[9]这样的形式访问每个元素下标既可是常量,也可是整型表达式,允许快速随机访问,如a[i]可以像使用普通变量一样使用它们如何使两个数组的值相等?main(){inta[4]={1,2,3,4},b[4];b=a;}解决方法方法1:逐个元素赋值b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];方法2:通过循环赋值inti;for(i=0;i<4;i++){b[i]=a[i];}原因:数组名表示数组的首地址,其值不可改变!8

5、.1一维数组的定义和初始化【例8.2】编程实现显示用户输入的月份(不包括闰年的月份)拥有的天数8.1一维数组的定义和初始化下标越界是大忌!编译程序不检查是否越界下标越界,将访问数组以外的空间那里的数据是未知的,不受我们掌控,可能带来严重后果b[0]b[1]b[2]b[3]b[4]b[5]b[6]b[7]b[8]b[9]ca【例8.3】当下标值小于0或超过数组长度时会出现什么情况?运行程序或单步执行观察变量变化情况可以看到,变量c和a的值因数组越界而被悄悄破坏了1234561207891011404448

6、4c5054585c6064686c8.2二维数组的定义和初始化一维数组用一个下标确定各元素在数组中的顺序可用排列成一行的元素组来表示如inta[5];二维数组用两个下标确定各元素在数组中的顺序可用排列成i行,j列的元素组来表示如intb[2][3];n维数组用n个下标来确定各元素在数组中的顺序如intc[3][2][4];n≥3时,维数组无法在平面上表示其各元素的位置a[0]a[1]a[2]a[3]a[4]b[0][0]b[0][1]b[0][2]b[1][0]b[1][1]b[1][2]【例】以下程

7、序的运行结果是什么?intmain(){inta[][3]={{1,2,3},{4,5},{6},{0}};printf("%d,%d,%d",a[1][1],a[2][1],a[3][1]);return0;}123450600000结果:5,0,0【例】若inta[][3]={1,2,3,4,5,6,7},则a数组的第一维大小是多少?123456700二维数组的初始化数组的数据类型和存储类型根据数组的数据类型,为每一元素安排相同长度的存储单元根据数组的存储类型,将其安排在内存的动态存储区、静态存

8、储区或寄存器区用sizeof(a)来获得数组a所占字节数shortshortinta[2][3];a[0]a[1]a[1][0]a[1][1]a[1][2]a[0][0]a[0][1]a[0][2]存放顺序:按行存放先顺序存放第0行元素,再存放第1行元素a[0][0]a[0][1]a[0][2]a[1][0]a[1][1]a[1][2]需知道数组每行列数才能从起始地址开始正确读出数组元素二维数组的存储结构二维数组实例【例8.4】从键盘输入某

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。