c语言第7章数组与字符串.ppt
《c语言第7章数组与字符串.ppt》由会员分享,可在线阅读,更多相关《c语言第7章数组与字符串.ppt(35页珍藏版)》请在三一文库上搜索。
1、一. 概念 C提供的数据类型有: 标准型和构造型。在遇到的大量编程问题中仅用标准型是解决不了的。如: 排序, 查询,统计,线性方程组求解,矩阵运算等需要用构造类型,数组是其中之一。 数组-具有相同类型数据的集合。数组中每一个数据称为元素,每一个元素均用统一的数组名和相应的下标确定。,数组定义 格式: 一维 类型说明符 数组名常量 二维 类型说明符 数组名常量 常量 例: int num10; float score34 ; 在程序中定义了一维数组和二维数组;编译时在内存开辟连续一批单元,存放数组各元素的值。,2 bytes,num0 num1 num2,num9,.,4 bytes,.,sco
2、re00 score01 score02,score23,功能: 定义数组名, 类型和大小。 num 整型 10个元素 score 实型 12个元素,数组元素赋初值 指在定义的同时可给数组各元素或部分元素赋初值,即初始化。在编译时除分配一定的单元,同时将初值赋给相应单元(元素), 否则是随机值。 如果给全部元素赋值,则在数组定义时,可以不给出数组长度,系统将根据初值的个数自动确定数组的长度。,num0 num1,.,0,1,9,static-表示静态存储; 若定义成: static int num10; 所有元素均赋 0;,部分元素赋初值: static int num10=0,1,2,3,4
3、; 其它元素均赋 0;,num9,一维数组: static int num10 = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ;,也可 static float score34=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 score34; 则所有元素均赋 0; 部分元素赋初值: static float score34=1,2,3; 表示score00; score10; score20分别赋1,2,3,其它元素均为 0。 static floa
4、t score34=1,7,8; 表示score 00=1;score10=7,score11=8,其它元素均为 0;,二维数组 static float score34=1,1,1,1,2,2,2,2,3,3,3,3,;,对数组元素的操作 在C中,只能对已定义的数组元素逐个的操作(赋值、输出等),不可对整个数组一次进行赋值 , 输出等。凡是变量可出现的地方,数组元素也可出现。 数组元素引用格式: 一维 数组名 二维 数组名 ,一维数组各元素: 赋值, 输出 main( ) int num10, i; for (i=0; i10; i+) numi=i+1; for(i=0; i10; i+)
5、 numi *= 10; for (i=0; i10; i+) printf(“num%d = %d n“, i, numi ); ,main( ) int num10, i; for (i=0; i10; i+) scanf(“%d“, ,二维数组各元素: 赋值,输出 main( ) int score34; int i, j; for (i=0; i3; i+) for (j=0; j4; j+) scanf(“%d“, ,数组在编程中应用 例:某班3人, 2门课, 试编程: 1. 键盘输入每个人学号和2门课成绩; 2. 求出每人平均分和每门课的平均分。,变量设置: num3 存放每个人的
6、学号 score32 存放30人,每人9门课成绩aver3 存放每人平均成绩 aver12 存放每门课平均成绩,main () int i, j; int score32, num3, sum; float aver3, aver12; for (i=0; i3; i+) scanf (“%d“, /* 输入每人学号和2门课成绩 */,for (i=0; i3; i+) sum=0; for (j=0; j2; j+) sum+=scoreij; averi =sum/2; /* 求出每人平均分 */ for (i=0; i3; i+) printf (“Student.%d t %f n“,
7、 i+1, averi); /* 输出每门课平均分 */,for (i=0; i2; i+) sum=0; for (j=0; j3; j+ ) sum+=scoreji; aver1i =sum/3; /* 求每门课平均分 */ for (i=0; i2; i+) printf (“Course.%d t %f n“, i+1, aver1i); /* 输出每门课平均分 */ ,例:已知三行三列数组各元素值, 试分别求各行元素,各列元素和每个元素之和。 main() int i, j; static int a44=3,5,6,0, 2,1,4,0, 3,5,4,0, 0,0,0,0; fo
8、r (i=0; i3; i+) for (j=0; j3; j+) ai3+=aij; a3j+=aij; a33+=aij; for (i=0; i4; i+) for (j=0; j4; j+) printf (“%5d“, aij); printf(“n“); ,第0列各元素之和,所有元素之和,第 0 行各 元素之和,3 5 6 xx 2 1 4 xx 3 5 4 xx xx xx xx xx,例:矩阵相乘: C=A*B 条件: A阵的列数 = B阵的行数 乘积矩阵的行数为A阵行, 列为B阵列 main( ) static int a33=1,2,3 ,4,5,6, 7,8,9; sta
9、tic int b32=1,2, 3,4, 5,6; static int c32; int i, j, k; for (i=0; i3; i+) for (j=0; j2; j+) for (k=0; k3; k+) cij+=aik * bkj; for (i=0; i3; i+) for (j=0; j2; j+) printf (“%5d“, cij); printf(“n“); ,main( ) int num10, i, j, k, tem; for (i=0; inumj) tem=numi; numi=numj; numj=tem; for (k=0;k10;k+) print
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 数组 字符串
链接地址:https://www.31doc.com/p-2143218.html