资源描述:
《最新安徽理工大学计算机软件教研室【共享精品-】课件ppt.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、安徽理工大学计算机软件教研室【共享精品-】4.1、数组问题的引出:实际应用的程序设计中,只用几个变量的情况是极少的;更多的情况是处理大批量的相同类型或不同类型的数据。相同类型数据举例:统计安理大15,000学生英语4级统考成绩;不同类型数据举例:管理安理大15,000学生学籍信息记录,包括:姓名、学号、出生日期、班级、各科成绩等。用什么样的数据结构来描述这类应用更简洁?迄今为止,我们使用的都是属于基本类型(整型、字符型、实型)的数据,c语言还提供了构造类型的数据,它们有:数组类型、结构体类型、共用体类型。构造类型数据是由基本类型数据按一定规则组成的,因此有的
2、书称它们为“导出类型”。8/3/2021安徽理工大学计算机软件教研室数组的概念数组是具有一定顺序关系的若干相同类型变量的集合体,组成数组的变量称为该数组的元素。数组属于构造类型。8/3/2021安徽理工大学计算机软件教研室一维数组初始化例:intA[5];在内存存储如图数组的首地址是数组名A数组的首地址也是第一个元素的地址&A[0]C语言中,数组的整体不能参加数据处理,参加处理的只能是数组中的元素变量。所以要对数组进行初始化。例如:intdata[5]={,4,,8,};赋值如图A[0]A[1]A[2]A[3]A[4]8/3/2021安徽理工大学计算机软件教
3、研室4.1一维数组4.1.1引例:【例4.1】求N个学生的平均成绩,并统计高于平均分的人数。用以前所学知识实现:intk=0;floats,ave,sum=0;for(inti=0;i<100;i++){cin>>s;sum=sum+s;}ave=sum/100;for(i=0;i<100;i++){cin>>s;if(s>ave)k++;}用数组来实现:intk=0;floats[100],ave,sum=0;for(i=0;i<100;i++){cin>>s[i];sum=sum+s[i];}ave=sum/100;for(i=0;i<100;i++)i
4、f(s[i]>ave)k++;数组:一组数据类型相同的元素按一定顺序存放,构成的数据集合。8/3/2021安徽理工大学计算机软件教研室4.1.2一维数组的定义、存储和初始化1.定义形式数据类型数组名[整型常量表达式];如:ints[5];s[0]s[1]s[2]s[3]s[4]下标从0开始数组名是常量,表示数组在内存中的首地址。数组长度应该为整型常量表达式,不能是变量。如:s正确:constints=10;inta[s];floatf[5];错误:ints=10;inta[s];floatb[3.4]8/3/2021安徽理工大学计算机软件教研室2.数组的初始
5、化1)给所有元素赋初值。如:inta[5]={0,2,4,6,8};或inta[]={0,2,4,6,8};2)给部分元素赋初值。如:inta[10]={1,3,5,7,9};花括号内列出的值赋给了前面的若干个元素,其余元素系统自动赋0。花括号错误:inta[10];a={1,3,5,7,9};//数组名是个地址常量,不能被赋值。inta[10];a[10]={1,3,5,7,9};//a[10]不是数组中的元素,不能用花括号为一个元素赋多个值。intc[3]={1,2,3,4};//常量个数超过数组定义的长度。8/3/2021安徽理工大学计算机软件教研室4
6、.1.3数组元素的引用和基本操作1.数组元素的引用形式:数组名[下标]相当于一个普通变量如有:inta[10]={1,2,3,4,5,6,7,8,9,10},b[10],i(2);则:a[3]=a[0]+a[i];cout<>a[j];(2)通过随机
7、函数rand()产生0~100的N个数据for(i=0;imax)max=a[j];8/3/2021安徽理工大学计算机软件教研室(5)求最大元素下标imax=0;//imax代表最大元素下标for(j=1;ja[ima
8、x])imax=j;(6)将最大元素放于某一特定位置