资源描述:
《计算机程序设计C语言5.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、计算机程序设计(C语言)第5章数组1.一维数组2.二维数组3.字符数组及字符串5.1一维数组C语言的数据类型:基本数据类型整型实型字符型构造数据类型数组指针类型空类型1、程序示例【例5-1】求10个同学某门课程的成绩平均数。5.1一维数组数组S,长度为10,下标从0开始s[0]s[1]s[2]s[3]s[4]s[5]s[6]s[7]s[8]s[9]#includeintmain(){inti,total=0;ints[10];floataverage;printf(“Pleasei
2、nput10scores:”);for(i=0;i<10;i++)scanf(“%d”,&s[i]);for(i=0;i<10;i++)total=total+s[i];average=total/10.0;printf(“Theaverageis%5.2f”,average)}数组的定义循环输入10个整数循环计算10个整数的和5.1一维数组5.1一维数组2、一维数组的定义和引用数组是一组类型相同的数据构成的有序集合。(1)一维数组的定义类型名数组名[数组长度]如:ints[10];char
3、a[5];floatf[9];注意:数组的长度必须是常量表达式,数组定义时,就必须指定数组大小。5.1一维数组(2)一维数组的引用数组元素的使用需指定下标:数组名[下标]例如:scanf(“%d”,&a[3]);a[10]=23;c[0]=‘a’;注意:数组的下标不能越界,否则会出现不可预料的结果。数组的下标:0~数组长度-1(3)一维数组的初始化定义数组时,对数组元素进行赋初值:类型名数组名[数组长度]={初值表}例如:给数组所有元素初始化inta[10]={1,2,3,4,5,6,7,8,9,1
4、0};charb[5]={‘a’,’b’,’c’,’d’,’e’};只初始化部分元素,其余元素自动初始化为0floatc[20]={0.5};ints[5]={0};数组初始化,省略数组长度,则数组的长度为初始化元素个数inta[]={10,20,30};charb[]={‘s’,’t’};5.1一维数组5.1一维数组对数组元素访问的常用方式:令循环变量遍历数组下标:for(n=0;n<数组长度;++n)...intmain(){charch[5]={‘A’,’B’,’C’,’D’,’E’};int
5、i;for(i=0;i<5;i++){ch[i]=ch[i]+2;printf(“%c”,ch[i]);}return0;}5.1一维数组例:从键盘上输入10个实数存入一个数组;问题1:输出这些数中最大值和最小值的下标。00最小数的下标最大数的下标两个变量均初始化为0,表示当前最小数和最大数均为数组第1个元素5.1一维数组#includeintmain(){floats[10];intmin=0,max=0,i;for(i=0;i<10;i++)/*输入10个实数*/scanf(“
6、%f”,&s[i]);for(i=1;i<10;i++){/*计算最大值、最小值的下标*/if(s[i]s[max])max=i;}printf(“min=%d,max=%d”,min,max);return0;}例:从键盘上输入10个实数存入一个数组;问题2:对这些数按照从大到小的顺序排序。12.520.13645102-565.6811362515.1一维数组选择排序法:从n个未排序序列中选择最大(小)的数据,与未排序序列的第一个元素交换;继续开始下一
7、次的排序过程,进行剩余n-1个数据的排序。25120.13645102-565.68113612.5待排序序列5.1一维数组选择排序的基本步骤:步骤1:从待排序序列中选择最大(小)值;步骤2:将选择的最大(小)值放在已排序序列中;对于n个数据,需要选择n-1次,每次的选择都必须循环比较,因此选择排序是双重循环。#includeintmain(){ints[10],temp,i,j,pos;for(i=0;i<10;i++)/*输入10个数*/scanf("%d",&s[i]);fo
8、r(i=0;i<9;i++){pos=i;for(j=i+1;j<10;j++)if(s[j]>s[pos])pos=j;if(pos!=i){temp=s[i];s[i]=s[pos];s[pos]=temp;}}for(i=0;i<10;i++)printf("%d,",s[i]);return0;}5.1一维数组选择最大值下标5.1一维数组例:从键盘上输入10个实数存入一个数组;问题3:在这些数据中查找值为x的数据的位置,若未找到则输出相应信息。i<10s[i]