资源描述:
《c语言第7章数组与字符串.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一.概念C提供的数据类型有:标准型和构造型。在遇到的大量编程问题中仅用标准型是解决不了的。如:排序,查询,统计,线性方程组求解,矩阵运算等需要用构造类型,数组是其中之一。数组---具有相同类型数据的集合。数组中每一个数据称为元素,每一个元素均用统一的数组名和相应的下标确定。数组定义格式:一维类型说明符数组名[常量]二维类型说明符数组名[常量][常量]例:intnum[10];floatscore[3][4];在程序中定义了一维数组和二维数组;编译时在内存开辟连续一批单元,存放数组各元素的值。2bytesnum[0]num[
2、1]num[2]num[9]….4bytes...score[0][0]score[0][1]score[0][2]score[2][3]功能:定义数组名,类型和大小。num整型10个元素score实型12个元素数组元素赋初值指在定义的同时可给数组各元素或部分元素赋初值,即初始化。在编译时除分配一定的单元,同时将初值赋给相应单元(元素),否则是随机值。如果给全部元素赋值,则在数组定义时,可以不给出数组长度,系统将根据初值的个数自动确定数组的长度。num[0]num[1]…...019static---表示静态存储;若定义成
3、:staticintnum[10];所有元素均赋0;部分元素赋初值:staticintnum[10]={0,1,2,3,4};其它元素均赋0;num[9]一维数组:staticintnum[10]={0,1,2,3,4,5,6,7,8,9};也可staticfloatscore[3][4]={1,1,1,1,2,2,2,2,3,3,3,3};也可staticfloatscore[][4]={1,1,1,1,2,2,2,2,3,3,3,3};而staticfloatscore[3][4];则所有元素均赋0;部分元素赋初值:s
4、taticfloatscore[3][4]={{1},{2},{3}};表示score[0][0];score[1][0];score[2][0]分别赋1,2,3,其它元素均为0。staticfloatscore[3][4]={{1},{7,8}};表示score[0][0]=1;score[1][0]=7,score[1][1]=8,其它元素均为0;二维数组staticfloatscore[3][4]={{1,1,1,1},{2,2,2,2,},{3,3,3,3,}};对数组元素的操作在C中,只能对已定义的数组元素逐个的
5、操作(赋值、输出等),不可对整个数组一次进行赋值,输出等。凡是变量可出现的地方,数组元素也可出现。数组元素引用格式:一维数组名[<表达式>]二维数组名[<表达式1>][<表达式2>]一维数组各元素:赋值,输出main(){intnum[10],i;for(i=0;i<10;i++)num[i]=i+1;for(i=0;i<10;i++)num[i]*=10;for(i=0;i<10;i++)printf("num[%d]=%d",i,num[i]);}main(){intnum[10],i;for(i=0;i<10;i
6、++)scanf("%d",&num[i]);for(i=0;i<10;i++)printf("num[%d]=%d",i,num[i]);}二维数组各元素:赋值,输出main(){intscore[3][4];inti,j;for(i=0;i<3;i++)for(j=0;j<4;j++)scanf("%d",&score[i][j]);for(i=0;i<3;i++){for(j=0;j<4;j++)printf("score[%d][%d]=%d",i,j,score[i][j]);printf("");}}数
7、组在编程中应用例:某班3人,2门课,试编程:1.键盘输入每个人学号和2门课成绩;2.求出每人平均分和每门课的平均分。变量设置:num[3]存放每个人的学号score[3][2]存放30人,每人9门课成绩aver[3]存放每人平均成绩aver1[2]存放每门课平均成绩main(){inti,j;intscore[3][2],num[3],sum;floataver[3],aver1[2];for(i=0;i<3;i++){scanf("%d",&num[i]);for(j=0;j<2;j++)scanf("%d",&scor
8、e[i][j]);}/*输入每人学号和2门课成绩*/for(i=0;i<3;i++){sum=0;for(j=0;j<2;j++)sum+=score[i][j];aver[i]=sum/2;}/*求出每人平均分*/for(i=0;i<3;i++)printf("Student.%dt%f",i+