资源描述:
《c语言第07章 数组》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第七章数组除了基本类型(整型_int、字符型_char、实型_float)的数据外,C语言还提供了构造类型的数据,它们有:数组类型、结构体类型、共用体类型。构造类型数据是由基本类型数据按一定规则组成的。求100名同学的平均分,存放字符串,都要用数组。inta[100];chars[100]数组是有序数据的集合。数组中的每一个元素都属于同一个数据类型。用一个统一的数组名和下标来唯一地确定数组中的元素。main(){inta[10];/*类型说明符数组名[常量表达式]数组名为a,此数组有10个整型元素*/inti,sum=0,ave;for(i=0;i<10;i++)scanf
2、("%d",&a[i]);/*a[0],a[1],a[2],a[3],a[4]a[5],a[6],a[7],a[8],a[9]注意:不能使用数组元素a[10]*/for(i=0;i<10;i++)sum=sum+a[i];ave=sum/10;printf("average=%d",ave);}例题1:求10名同学的平均分。7_2.c1.数组中的各元素在内存中占连续的空间。inta[10]={1,2,3,4,5,6,7,8,9,10};2.不允许对数组的大小作动态定义,即数组的大小不能是变量。例如:下面是不合法的:intn;floata[n];3.数组元素的使用与变量是一样
3、的。可以赋值,也可作各种运算,还可以输入和输出。例如:a[0]=1;a[1]=a[0]+1;12345678910a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]一维数组的初始化1.在定义数组时可对数组元素赋以初值。例如:inta[10]={0,1,2,3,4,5,6,7,8,9};不可以:a[10]={0,1,2,3,4,5,6,7,8,9};2.可以只给一部分元素赋初值,系统会对其它元素自动赋以0值。例如:inta[10]={5,1,2,3,4};3.如果想使一个数组中全部元素值为0inta[10]={0,0,0,0,0,0,0,0,0,
4、0};或inta[10]={0};不能写成:inta[10]={0*10};4.对全部元素赋值时,可以不指定数组长度:inta[]={0,1,2,3,4};/*数组a中有5个元素*/数组的输入输出:除字符串外,数组不能作为一个整体输入或输出,必须逐个处理每一个元素。例如:将一个数组a[8]输出。7_1.cmain(){inta[8],i;for(i=0;i<8;i++)/*输入a*/scanf("%d",&a[i]);for(i=0;i<8;i++)printf("t%d",a[i]);}用数组求10个实数中最大的数,并将数组最大数放到最后一个数组元素中main(){fl
5、oata[10],m;inti;for(i=0;i<=9;i++)scanf("%f",&a[i]);for(i=0;i<9;i++)if(a[i]>a[i+1]){m=a[i];a[i]=a[i+1];a[i+1]=m;}for(i=0;i<10;i++)printf("t%f",a[i]);}例2:输入10个整数,按由小到大的顺序排序并输出。常用的排序算法:起泡法和选择法。一、起泡法的思路是:将相邻两个数进行比较,将小数调到前面。每一轮比较后,将得到一个最大数,而最小数向前俘起一个位置。例如:第0轮比较第1轮比较第2轮比较43213212134212311232412
6、133214起泡法算法设计:起泡法排序程序清单:(7-4.c)main(){inta[10],i,j,t;for(i=0;i<10;i++)*输入10个数*scanf("%d,",&a[i]);for(j=0;j<=8;j++)for(i=0;i<=8-j;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}for(i=0;i<10;i++)printf("%d",a[i]);}2.求出10个实数中最大的数7-3.cmain(){floata[10],max;inti;for(i=0;i<=9;i++)scanf("%f",
7、&a[i]);printf("%f",max);}max=a[0];for(i=1;i<=9;i++)if(a[i]>max)max=a[i];用数组求10个实数中最大的数,并与数组的第一个元素交换,不改变其他元素的值7-3-1.cmain(){floata[10],m;inti,j;for(i=0;i<=9;i++)scanf("%f",&a[i]);j=0;for(i=1;i<=9;i++)if(a[i]>a[j])j=i;m=a[j];a[j]=a[0];a[0]=m;for(i=0;i<10;i++)p