2、rintf(“average=%.2f”,ave);printf(“%.2f%.2f%.2f%.2f”,k1,k2,k3,k4);}问题的提出:1、求100名学生某课程平均成绩,并按降序排序。2、求2006年全省高考理工类各科平均成绩,并按降序排序。构造类型数据由基本类型(整型、字符型、实型)数据按照一定规律组成的。数组构造类型结构体共用体数组有限个同一类型数据的集合,即该组数据都属于同一数据类型。表达形式用一个数组名来标识这一组数,每一个数组元素(下标变量)用数组名和下标来唯一地确定。如:数学表达形式:x1,x2,x3,x4,…,xi,…sc11,sc12,sc13,sc14,
3、…sc21,sc22,sc23,sc24,…age0,age1,age2,age3……C中表示形式:x[1],x[2],x[3],x[4],…,x[i],…score[1][1],score[1][2],score[1][3],…,score[i][j],…age[0],age[1],age[2],age[3],……§5.1一维数组一维数组,每个元素在数组中的位置用一个下标来确定。一、一维数组的定义autointa[3];/*inta[3];*/staticcharch[5];/*static表示“静态”*/staticfloatb[5];数组长度说明1.数组名的命名规则和变量名相同。2
4、.元素个数,必须是整型常量表达式(含符号常量),不能包含变量。正确inta[3],b[3+5];3.数组元素的序号(即下标)是从0开始的:inta[3];a数组的3个元素是a[0]、a[1]、a[2]格式存储类别类型标识符数组名[元素个数]intn;scanf(“%d”,&n);inta[n];错误二、一维数组的使用说明1.数组的使用是指:引用数组元素,不能一次引用整个数组。引用形式数组名[下标]错误的引用,下标越界main(){inta[4];(其元素:a[0],a[1],a[2],a[3])a[0]=2;a[1]=3;a[3]=3+a[0]+a[1];a[4]=2;……printf(
5、“%d”,a[1]);}C语言规定数组必须先定义后使用!2.下标:必须是整型表达式。a[0],a[2+i],a[2*j](i,j为整型变量,且有确定的值)3.可用赋值语句或输入函数调用语句给数组元素赋值。如:a[1]=6;scanf(“%d”,&a[2]);4.数组元素在内存中是按其下标递增的次序连续存放的。inta[5];因此,可通过其下标值,用循环的办法来操作数组。第i号元地址:&a[i]即&a[0]+i*d学生暂时不掌握例5.1逆序输出数组各元素值。程序演示main(){inti,a[6];for(i=0;i<=5;i++)a[i]=2*i;/*scanf(“%d”,&a[i])*
6、/for(i=5;i>=0;i--)printf("%3d",a[i]);}a[0]=0a[1]=2a[2]=4a[3]=6a[4]=8a[5]=10程序运行结果:1086420三、一维数组初始化——在定义数组的同时对各元素(下标变量)指定初始值。存储类别为static或extern的数组可初始化。初始值表,是用逗号分隔的且与元素数据类型一致的常量表。初始化的形式1.给全部元素赋初值(可不指定长度)。staticinta[6]={1,3,5,7,9,11};或staticinta[]={1,3,5,7,9,11};存储类别类型标识符数组名[元素个数]={初始值表};2.给部分元素赋初值(
7、必须指定长度)。staticinta[4]={1,3};即:a[0]=1;a[1]=3;3.对全部数组元素赋初值0。如:inta[6]={0,0,0,0,0,0};或staticinta[6];对static或extern数值数组不赋初值,系统对所有元素自动赋以0值。4.新的C标准也允许对主函数中auto型数组初始化。如果不对自动型数组初始化,则其初始值为一些不可预料的数。如:main(){autointa[6];/*inta[6]