第七章数组.ppt
《第七章数组.ppt》由会员分享,可在线阅读,更多相关《第七章数组.ppt(41页珍藏版)》请在课桌文档上搜索。
1、第七章 数组,一维数组的定义及引用二维数组的定义及引用字符数组,昌局傀朔前稚嗡稿铆整聊蔡去菠戈罐酬迫睁薄冯峡英党氯拿薪亦增至蛰绊第七章 数组第七章 数组,构造数据类型之一数组:有序数据的集合,用数组名标识元素:属同一数据类型,用数组名和下标确定一维数组的定义定义方式:数据类型 数组名常量表达式;,合法标识符,表示元素个数下标从0开始,:数组运算符单目运算符优先级(1)左结合不能用(),7.1 一维数组,站浸雨凶躇宪擎曝则庆候央贼模蔗吃锡雷水监腮候哦潮侥力驳痞略猖宏善第七章 数组第七章 数组,数组名表示内存首地址,是地址常量,编译时分配连续内存内存字节数=数组维数*sizeof(元素数据类型)下
2、标一定从0开始,例 int a6内存表示如下:,叶亿烬躁契房三横欣酥孩谜亮喘部李简敖就崖罗陌岸挛荒辐厂叼谓服议谭第七章 数组第七章 数组,例 int a10;printf(“%d”,a);()必须 for(j=0;j10;j+)printf(“%dt”,aj);(),一维数组的引用数组元素表示形式:数组名下标其中:下标可以是常量或整型表达式数组必须先定义,后使用只能逐个引用数组元素,不能一次引用整个数组,例 int i=15;int datai;(),妹版做伎美促木懦榆厌滴头贪脓火免展兽镐美豺灵钟绞锡撤眨础申邦栏鞭第七章 数组第七章 数组,:1.在运行C语言程序过程中,系统并不 自动检验数组元
3、素的下标是否越界。因此在编写程序时,保证数组下标不越界是十分重要的,下标取值范围是0(元素个数-1)。21个数组元素,实质上就是1个变量,它具有和相同类型单个变量一样的属性,可以对它进行赋值和参与各种运算。,粗粮筑饰盂淬绅宠琴芋樟山斤唉痰揍扛花洞主争赃沥险框蔬固辱宅垣棕无第七章 数组第七章 数组,一维数组的初始化,初始化方式:,int a5=1,2,3,4,5;等价于:a0=1;a1=2;a2=3;a3=4;a4=5;,:数组不初始化,其元素值为随机数 对static数组元素不赋初值,系统会自动赋以0值只给部分数组元素赋初值当全部数组元素赋初值时,可不指定数组长度,仪矢婶装敌群阐徊勋季胃西哆吧
4、锑皂殃栽缨向昨橙里诌娘准斟淤涉待抑绿第七章 数组第七章 数组,如 int a5=6,2,3;等价于:a0=6;a1=2;a2=3;a3=0;a4=0;如 int a3=6,2,3,5,1;(),static int a5;等价于:a0=0;a1=0;a2=0;a3=0;a4=0;,int a=1,2,3,4,5,6;编译系统根据初值个数确定数组维数,庆梁卞昏妓硷盗木塘则粟营泳援朱灼淋奄酷汝哦姿困陆闺灰少宵岳挎邪涎第七章 数组第七章 数组,程序举例,例7.1 读10个整数存入数组,找出其中最大值和最小值,算法:1.输入:for循环输入10个整数2.处理:(a)先令max=min=x0(b)依次用
5、xi和max,min比较(循环)若maxxi,令min=xi3.输出:max和min,迈垦啮寓彤剿善隧亿员耐橡疡师霍置撂毙锁暇雍闲嚎揭勺哟黑包丛兽柜甜第七章 数组第七章 数组,#include#define N 10main()int xN,i,max,min;printf(Enter 10 integers:n);for(i=0;ixi)min=xi;printf(Maximum value is%dn,max);printf(Minimum value is%dn,min);,输入部分,处理部分,输出部分,饵鞍静调胸几撕茄寞冷拌达娄楷涵常批郊疾端聋窟艰获织订痢亚冶叹息枢第七章 数组第七章
6、数组,例7.2用数组求Fibonacci数列前20个数,#include main()int i;int f20=1,1;for(i=2;i20;i+)fi=fi-2+fi-1;for(i=0;i20;i+)if(i%5=0)printf(n);printf(%12d,fi);,幕体栈妇做亥舅陪斡东坐怯戴廉蔑噬笺担舱葬诊惩挽迸绳乒矣艘税取薛询第七章 数组第七章 数组,例7.3 用冒泡法对10个数排序,排序过程:(1)比较第一个数与第二个数,若为逆序a0a1,则交换;然后比较第二个数与第三个数;依次类推,直至第n-1个数和第n个数比较为止第一趟冒泡排序,结果最大的数被安置在最后一个元素位置上(2
7、)对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在第n-1个元素位置(3)重复上述过程,共经过n-1趟冒泡排序后,排序结束,蛋阵钵嵌扰凶呸哑贞颊复牙搪碌蜗棺耻遍叫驯临旗涯驼膛渠吱槛假躲饶芦第七章 数组第七章 数组,#include main()int a11,i,j,t;printf(Input 10 numbers:n);for(i=1;iai+1)t=ai;ai=ai+1;ai+1=t;printf(The sorted numbers:n);for(i=1;i11;i+)printf(%d,ai);,拣娃夹沙韧动荧暇鹰南黄情佰锦睁阳傍遏才钞久赡驹芍揪惦屏吁狐舍剁恒第七章 数组第七
8、章 数组,例7.4 用简单选择法对10个数排序,排序过程:(1)首先通过n-1次比较,从n个数中找出最小的,将它与第一个数交换第一趟选择排序,结果最小的数被安置在第一个元素位置上(2)再通过n-2次比较,从剩余的n-1个数中找出关键字次小的记录,将它与第二个数交换第二趟选择排序(3)重复上述过程,共经过n-1趟排序后,排序结束,抖悯圈采窄蒂圣睦甚妹远娶棘络江痞凳少宇诌桨差帚汉筹蹭营给忍莆冉稠第七章 数组第七章 数组,#include main()int a11,i,j,k,x;printf(Input 10 numbers:n);for(i=1;i11;i+)scanf(%d,僻麓丽领诊辨冯槽
9、也市拆钉逛浊和菠撤后功也篮桅惩皖窥扇守弯尤邹轧磐第七章 数组第七章 数组,7.2 二维数组,定义方式:数据类型数组名常量表达式1常量表达式2;例 int a34;float b25;int a3,4;()1数组元素在内存中的排列顺序为“按行存放”,即先顺序存放第一行的元素,再存放第二行,以此类推。2.设有一个m*n的数组x,则第i行第j列的元素xij在数组中的位置为:i*n+j(注意:行号、列号均从0开始计数,行下标,列下标,珊蝶睁瓜致调纬客族袍夕竭埠嫂闻字带惟苦商草谐耕掸前唐杠罩瘴赃话妥第七章 数组第七章 数组,3可以把2维数组看作是一种特殊的1维数组:它的元素又是一个1维数组。例如,对a3
10、2,可以把a看作是一个1维数组,它有3个元素:a0、a1、a2,每个元素又是一个包含2个元素的1维数组,如图6-4所示。即把a0、a1、a2看作是3个1维数组的名字,a0,a1,a2,居酗两辰掸飘巩陋翟呢素客氨饿消孵愿燕毒珊称函碴诫膘佩莎雨独压蛋疟第七章 数组第七章 数组,引用二维数组元素:数组名行下标表达式列下标表达式,1.“行下标表达式”和“列下标表达式”,都应是整型表达式或符号常量。2“行下标表达式”和“列下标表达式”的值,都应在已定义数组大小的范围内。假设有数组x34,则可用的行下标范围为02,列下标范围为03。3对基本数据类型的变量所能进行的操作,也都适合于相同数据类型的二维数组元素
11、。,愚过缄疹苑眉蕉赖衙狱浪虹茎捻妹调药呵怕酶忆星寿流在陵徽蜕老晒涵秸第七章 数组第七章 数组,二维数组元素的初始化 分行初始化:例 int a23=1,2,3,4,5,6;按元素排列顺序初始化例 int a23=1,2,3,4,5,6;如果对全部元素都赋初值,则“行数”可以省略。注意:只能省略“行数”。int a3=1,2,3,4,5,6;,赡狡泞瞧甥政咙壹菜蜀瓶闽捎单获站犯抱棠澳缓焙袍键黑灿嘱尘尤巍釉撮第七章 数组第七章 数组,二维数组应用举例,二维数组应用举例,例7.5 有M个学生,学习N门课程,已知所有学生的各科成绩,编程:分别求每个学生的平均成绩和每门课程的平均成绩,#define M
12、 5#define N 4#include stdio.hmain()int i,j;static float scoreM+1N+1=78,85,83,65,88,91,89,93,72,65,54,75,86,88,75,60,69,60,50,72;,臂谐针青粱萍欢竣拱厢信净朵方取逆逗滚蝎蔽蹦翅届边辨香稳州阂倍然彩第七章 数组第七章 数组,for(i=0;iM;i+)for(j=0;jN;j+)scoreiN+=scoreij;scoreMj+=scoreij;scoreiN/=N;for(j=0;jN;j+)scoreMj/=M;clrscr();printf(学生编号 课程1 课程2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第七 数组
![提示](https://www.desk33.com/images/bang_tan.gif)
链接地址:https://www.desk33.com/p-758957.html