欢迎来到天天文库
浏览记录
ID:41879464
大小:950.00 KB
页数:73页
时间:2019-09-04
《第4章 数组、指针与字符串》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第4章数组、指针与字符串4.1数组的基本概念4.2一维数组4.3二维数组4.4字符数组4.5指针和数组4.6结构体与链表4.7常用算法4.1数组的基本概念【问题】从键盘接收10个数,求平均数并输出小于平均数的数分析:从键盘接收10个数,求平均数很简单,可以采用简单变量和循环结构相结合的方法,程序段如下:floataver=0;for(i=0;i<10;i++){cout<<"输入第"<>a[i];aver+=a[i];}aver=aver/10;//求10个数的平均数但
2、是输出小于平均数的数就比较麻烦了,因为从键盘接收的10个数在求和以后没有保存起来,等再比较比平均数小的数就无法实现。若要输出小于平均数的数,必须再重复输入这10个数。这样带来两个问题:(1)输入数据的工作量成倍增加;(2)若本次输入的数与上次不同,则输出的结果不正确。在程序设计中,我们常把具有相同类型的若干变量按有序的形式组织起来,这些按序排列的同类型数据元素的集合称为数组。数组属于构造类型,在计算机中,一个数组在内存中占用一片连续的存储空间,在程序中用数组名来标识这一数组,而下标指明数组中各元素的序
3、号,用下标变量来标识数组的每个元素。根据下标的个数不同可以把数组分为一维、二维和多维的,本章重点介绍一维和二维数组。数组在使用前必须先定义(数组名、类型、大小、维数),后使用。ss[0]s[1]s[2]s[3]s[4]正确:constints=10;inta[s];floatf[5];错误:ints=10;inta[s];floatb[3.4]下标从0开始数组名是常量,表示数组在内存中的首地址。数组长度应该为整型常量表达式,不能是变量。如:4.2.1一维数组的定义、存储和初始化1.定义形式数据类型数组
4、名[整型常量表达式];如:ints[5];4.2一维数组2.数组的初始化花括号错误: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};//常量个数超过数组定义的长度。2)给部分元素赋初值。如:inta[10]={1,3,5,7,9};花括号内列出的值赋给了前面的若干个元素,其余元素系统自动赋0。1)给所有元素赋初值。如
5、:inta[5]={0,2,4,6,8};或inta[]={0,2,4,6,8};4.2.2数组元素的引用和基本操作1.数组元素的引用形式:数组名[下标]相当于一个普通变量如有:inta[10]={1,2,3,4,5,6,7,8,9,10},b[10],i(2);则:a[3]=a[0]+a[i];cout<6、的符号常量。(1)数组元素的输入for(j=0;j>a[j];(2)通过随机函数rand()产生0~100的N个数据for(i=0;imax)max=a[j];(5)求最大元素下标i7、max=0;//imax代表最大元素下标for(j=1;ja[imax])imax=j;(6)将最大元素放于某一特定位置(如放在最前头)imax=0;for(j=1;ja[imax])imax=j;if(imax!=0){t=a[0];a[0]=a[imax];a[imax]=t;}4.2.3数组排序排序是将一组数按递增或递减的次序排列,如按学生的成绩、球赛积分等排序。常用的算法有:选择法(√)冒泡法(√)插入法快速排序法…...1.选择法排8、序基本思想:(1)从n个数的序列中选出最小的数(递增),与第1个数交换位置;(2)除第1个数外,其余n-1个数再按(1)的方法选出次小的数,与第2个数交换位置;3)重复(1)n-1遍,最后构成递增序列。【例4.2】对存放在数组中的6个数,用选择法按递增排序。下标:01~512~523~534~545for(i=0;i<5;i++){min=i;for(j=i+1;j<6;j++)if(a[j]
6、的符号常量。(1)数组元素的输入for(j=0;j>a[j];(2)通过随机函数rand()产生0~100的N个数据for(i=0;imax)max=a[j];(5)求最大元素下标i
7、max=0;//imax代表最大元素下标for(j=1;ja[imax])imax=j;(6)将最大元素放于某一特定位置(如放在最前头)imax=0;for(j=1;ja[imax])imax=j;if(imax!=0){t=a[0];a[0]=a[imax];a[imax]=t;}4.2.3数组排序排序是将一组数按递增或递减的次序排列,如按学生的成绩、球赛积分等排序。常用的算法有:选择法(√)冒泡法(√)插入法快速排序法…...1.选择法排
8、序基本思想:(1)从n个数的序列中选出最小的数(递增),与第1个数交换位置;(2)除第1个数外,其余n-1个数再按(1)的方法选出次小的数,与第2个数交换位置;3)重复(1)n-1遍,最后构成递增序列。【例4.2】对存放在数组中的6个数,用选择法按递增排序。下标:01~512~523~534~545for(i=0;i<5;i++){min=i;for(j=i+1;j<6;j++)if(a[j]
此文档下载收益归作者所有