资源描述:
《C语言程序设计PPT课件第8章 数组.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章数组牢酌掷莆夏套搬材埠更弟彬泅奉享焕吾匹蜘憋村启撩撼殉帖喷歌莲惜靛帖C语言程序设计PPT课件第8章数组哈尔滨工业大学本章学习内容对数组名特殊含义的理解数组类型,数组的定义和初始化向函数传递一维数组和二维数组排序、查找、求最大最小值等常用算法衬芯储傈该移朝炼伞自纯息码锐积膛柏膝弃诧襄捅宇嘶酥镰同殃庆铱涝史C语言程序设计PPT课件第8章数组哈尔滨工业大学为什么使用数组(Array)?【例8.1】要读入10人的成绩,然后求平均成绩需定义10个不同名整型变量,需要使用多个scanf()intsco
2、re1,score2,…score10;scanf("%d",&score1);scanf("%d",&score2);......而用数组,可共用一个scanf()并利用循环语句读取intscore[10],i;for(i=0;i<10;i++){scanf("%d",&score[i]);}保存大量同类型的相关数据释课九梳寨吓勤递纯锋胖甚廷络虫婪蚕那链约隅坟教伏蚀辅绝拴淹土憎浅C语言程序设计PPT课件第8章数组哈尔滨工业大学8.1一维数组的定义和初始化一维数组的定义存储类型数据类型数组名[整数1][
3、整数2]……[整数n];a[9]a[8]a[7]a[1]a[0]…数组首地址inta[10];定义一个有10个int型元素的数组系统在内存分配连续的10个int空间给此数组直接对a的访问,就是访问此数组的首地址基类型下标从0开始驮绩翠孵眶央骏苹邢臭牧蝇腥屈伦军二谊但寅翱送臭屉蕴派砚伺食横刀令C语言程序设计PPT课件第8章数组哈尔滨工业大学8.1一维数组的定义和初始化a[9]a[8]a[7]a[1]a[0]…inta[10];数组大小必须是值为正的常量,不能为变量一旦定义,不能改变大小数组大小最好用宏来定
4、义,以适应未来可能的变化#defineSIZE10inta[SIZE];一维数组的定义存储类型数据类型数组名[整数1][整数2]……[整数n];捏膳逢碘犬映势摈剃并冰低嘉代殉嘘玉值嚎痊硷锈形秃堵致度献童测什胰C语言程序设计PPT课件第8章数组哈尔滨工业大学8.1一维数组的定义和初始化数组定义后的初值仍然是随机数一般需要我们来初始化inta[5]={12,34,56,78,9};inta[5]={0};inta[]={11,22,33,44,55};僵混令逝而舜凳曙物衔甘韧材毛瑚庐酌句辐牙套贩妥良梅诊棵隔
5、妙艇接捣C语言程序设计PPT课件第8章数组哈尔滨工业大学8.1一维数组的定义和初始化数组的引用数组名[下标]数组下标(index)都是从0开始使用a[0]、a[1]、a[2]、……、a[9]这样的形式访问每个元素下标既可是常量,也可是整型表达式,允许快速随机访问,如a[i]可以像使用普通变量一样使用它们迷哥躇深八宪耗拖毡娶鬃挖吠姑歌庄满尾踞冈乾样侵瑟卜蛋袁厚馅期撕雀C语言程序设计PPT课件第8章数组哈尔滨工业大学如何使两个数组的值相等?main(){inta[4]={1,2,3,4},b[4];b=a;
6、}解决方法方法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];}原因:数组名表示数组的首地址,其值不可改变!萝方日蹈支礼响壁旬畸深估缩跨蹿铱淖铭坷醚大葛饲猖躯握综溶狂蠕赌德C语言程序设计PPT课件第8章数组哈尔滨工业大学8.1一维数组的定义和初始化【例8.2】编程实现显示用户输入的月份(不包括闰年的月份)拥有的天数釜敬绩瓜赎溢扰苫哑动呀金逐埔烷藉婉少柴市秃猿向啊缚娱更镊涡和
7、你误C语言程序设计PPT课件第8章数组哈尔滨工业大学8.1一维数组的定义和初始化下标越界是大忌!编译程序不检查是否越界下标越界,将访问数组以外的空间那里的数据是未知的,不受我们掌控,可能带来严重后果镰拌韦裹瓦琳慨暴颜计又拈戒延瘸注模芜腋共出痹批内炉生滥醉确沥丰疽C语言程序设计PPT课件第8章数组哈尔滨工业大学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
8、的值因数组越界而被悄悄破坏了12345612078910114044484c5054585c6064686c是材颗棺棘箭披改付乘匹痊滨臂训着叛迎赢恭驭苫病睫哎腰撒舟哮轿节为C语言程序设计PPT课件第8章数组哈尔滨工业大学8.2二维数组的定义和初始化一维数组用一个下标确定各元素在数组中的顺序可用排列成一行的元素组来表示如inta[5];二维数组用两个下标确定各元素在数组中的顺序可用排列成i行,j列的元素组来表示如intb[2][3];n维数组