文档详情

c语言第七章数组与字符串.ppt

发布:2017-04-18约6.26千字共35页下载文档
文本预览下载声明
一. 概念 C提供的数据类型有: 标准型和构造型。在遇到的大量编程问题中仅用标准型是解决不了的。如: 排序, 查询,统计,线性方程组求解,矩阵运算等需要用构造类型,数组是其中之一。 数组---具有相同类型数据的集合。数组中每一个数据称为元素,每一个元素均用统一的数组名和相应的下标确定。 ;数组定义 格式: 一维 类型说明符 数组名[常量] 二维 类型说明符 数组名[常量] [常量] 例: int num[10]; float score[3][4] ; 在程序中定义了一维数组和二维数组;编译时在内存开辟连续一批单元,存放数组各元素的值。 ;2 bytes;数组元素赋初值 指在定义的同时可给数组各元素或部分元素赋初值,即初始化。在编译时除分配一定的单元,同时将初值赋给相应单元(元素), 否则是随机值。 如果给全部元素赋值,则在数组定义时,可以不给出数组长度,系统将根据初值的个数自动确定数组的长度。 ;num[0] num[1];也可 static float score[3][4]={1,1,1,1,2,2,2,2,3,3,3,3}; 也可 static float score[ ][4]={1,1,1,1,2,2,2,2,3,3,3,3}; 而 static float score[3][4]; 则所有元素均赋 0; 部分元素赋初值: static float score[3][4]={{1},{2},{3}}; 表示score[0][0]; score[1][0]; score[2][0]分别赋1,2,3,其它元素均为 0。 static float score[3][4]={{1},{7,8}}; 表示score [0][0]=1;score[1][0]=7,score[1][1]=8,其它元素均为 0; ;对数组元素的操作 在C中,只能对已定义的数组元素逐个的操作(赋值、输出等),不可对整个数组一次进行赋值 , 输出等。凡是变量可出现的地方,数组元素也可出现。 数组元素引用格式: 一维 数组名 [表达式] 二维 数组名 [表达式1][表达式2];一维数组各元素: 赋值, 输出 main( ) { int num[10], i; for (i=0; i10; i++) num[i]=i+1; for(i=0; i10; i++) num[i] *= 10; for (i=0; i10; i++) printf(num[%d] = %d \n, i, num[i] ); } ;main( ) { int num[10], i; for (i=0; i10; i++) scanf(%d, num[i]); for (i=0; i10; i++) printf(num[%d] = %d \n, i, num[i]); };二维数组各元素: 赋值,输出 main( ) { int score[3][4]; int i, j; for (i=0; i3; i++) for (j=0; j4; j++) scanf(%d, score[i][j]); for (i=0; i3; i++) { for (j=0; j4; j++) printf (score[%d][%d]=%d, i, j, score[i][j]); printf(\n); } };数组在编程中应用 例:某班3人, 2门课, 试编程: 1. 键盘输入每个人学号和2门课成绩; 2. 求出每人平均分和每门课的平均分。 ;main () { int i, j; int score[3][2], num[3], sum; float aver[3], aver1[2]; for (i=0; i3; i++) { scanf (%d, num[i]); for (j=0; j2; j++) scanf (%d, score[i][j]); } /* 输入每人学号和2门课成绩 */ ; for (i=0; i3; i++) { sum=0; for (j=0; j2; j++) sum+=score[i][j]; aver[i] =sum/2; } /* 求出每人平均分 */ for (i=0; i3; i++) printf (Student.%d \
显示全部
相似文档