如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
一.概念C提供的数据类型有:标准型和构造型。在遇到的大量编程问题中仅用标准型是解决不了的。如:排序,查询,统计,线性方程组求解,矩阵运算等需要用构造类型,数组是其中之一。数组---具有相同类型数据的集合。数组中每一个数据称为元素,每一个元素均用统一的数组名和相应的下标确定。数组定义格式:一维类型说明符数组名[常量]二维类型说明符数组名[常量][常量]例:intnum[10];floatscore[3][4];在程序中定义了一维数组和二维数组;编译时在内存开辟连续一批单元,存放数组各元素的值。2bytes数组元素赋初值指在定义的同时可给数组各元素或部分元素赋初值,即初始化。在编译时除分配一定的单元,同时将初值赋给相应单元(元素),否则是随机值。如果给全部元素赋值,则在数组定义时,可以不给出数组长度,系统将根据初值的个数自动确定数组的长度。num[0]num[1]也可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;部分元素赋初值:staticfloatscore[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;对数组元素的操作在C中,只能对已定义的数组元素逐个的操作(赋值、输出等),不可对整个数组一次进行赋值,输出等。凡是变量可出现的地方,数组元素也可出现。数组元素引用格式:一维数组名[<表达式>]二维数组名[<表达式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\n",i,num[i]);}main(){intnum[10],i;for(i=0;i<10;i++)scanf("%d",&num[i]);for(i=0;i<10;i++)printf("num[%d]=%d\n",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("\n");}}数组在编程中应用例:某班3人,2门课,试编程:1.键盘输入每个人学号和2门课成绩;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",&score[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.%d\t%f\n",i+1,aver[i]);/*输出每门课平均分*/for(i=0;i<2;i++){sum=0;for(j=0;j<3;j++)sum+=score[j][i];aver1[i]=sum/3;}/*求每门课平均分*/for(i=0;i<2;i++)printf("Course.%d\t%f\n",i+1,aver1[i]);/*输出每门课平均分*/}例:已知三行三列数组各元素值,试分别求各行元素,各列元素和每个元素之和。main(){inti,j;staticinta[4][4]={{3,5,6,0},{2,1,4,0},{3,5,4,0},{0,0,0,0}};for(i=0;i<3;i++)