大工c语言第六章

上传人:j****9 文档编号:58106161 上传时间:2018-10-26 格式:PPT 页数:29 大小:252KB
返回 下载 相关 举报
大工c语言第六章_第1页
第1页 / 共29页
大工c语言第六章_第2页
第2页 / 共29页
大工c语言第六章_第3页
第3页 / 共29页
大工c语言第六章_第4页
第4页 / 共29页
大工c语言第六章_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《大工c语言第六章》由会员分享,可在线阅读,更多相关《大工c语言第六章(29页珍藏版)》请在金锄头文库上搜索。

1、掌握一维数组和多维数组的定义、初始化和引用掌握字符串与字符数组,第六章 数 组,6.1.1 一维数组的定义格式: 类型说明符 数组名Size ;如: float class130;说明:(1)数组名同变量名命名规则相同。(2)数组名后是用方括号而不是圆括号。,前面我们用到的是语言中的基本类型(整型、符型、实型)的数据,语言使用了构造类型(数组、结构体、共同体类型),本章首先介绍数组部分。,6.1 一维数组的定义和引用,(3) Size表示数组元素个数。如:a3 表示a数组有个数组元素,即 :a0、a1、a2 ,下标从0开始,且数组元素不能有a3。 (4) Size为常量(包括符号常量),不能为

2、变量,语言中不允许对数组的大小作动态定义。如下是错误的。int n;scanf(“%d” , ,下标可以为常量或变量,(1)把数组清0 for(i=0;i5;ii+) ai=0; (2)给数组输入值(数组元素只能逐个赋值)for(i=0;i5;i+) scanf(“%d”,6.1.3 一维数组的初始化 语言中允许对数组进行初始化,一维数组的初始化是在定义数组时,用 内的初始条件来表示初始化,和初始值之间用逗号隔开。 实现的方法: 对数组置初值。 如: Static int a5=3,5,6,4,8;注意:C语言中只能对static(静态变量)、extern(外部变量)进行初始化。但是在Turb

3、o C中可以直接对数组赋初值,例 int a10=1,2; 只给数组中一部分元素初值。如:static int a9=1,2;则a0= 1, a1= 2, a2a8值全为0。 若组数组元素全部清。 如:static int a5;或 static int a5= 0, 0, 0, 0, 0 ;注意:定义成static数组,系统会自动赋以0值。,若对全部数组元素赋值时,可以不指定数组长度。如:static float array13= 1.2, 1.4, 2.5 等价于 static float array1 = 1.2, 1.4, 2.5 ,6.1.4 一维数组的程序举例 例 用数组来处理求F

4、ibonacci数列问题。程序为:main( ) int i;static int f20= 1, 1 ;for( i=2; i20 ;i+) fi= fi-2+fi-1;for( i=0; i20; i+) if( i%5= = 0) printf(“n”);printf(“%12d” , fi ); ,运行结果如下:1 1 2 3 58 13 21 34 5589 144 233 377 610987 1597 2584 4181 6765,例2 用冒泡法对10个数排序(由小到大)。 方法:将两个相临数比较,将小的调到前头。9 8 8 8 8 88 9 5 5 5 55 5 9 4 4 4

5、4 4 4 9 2 22 2 2 2 9 00 0 0 0 0 9,由以上可推知:6 个数要比较5趟第一趟中要进行两两比较5次第二趟中比较 4次 若有n个数,则要进行n-1趟比较第j趟比较中要进行n-j次两两比较。,main( ) int a11;int i, j, t ;printf(“input 10 numbers: n”);for( i=1; iai+1)t= ai; ai= ai+1;ai+1= t ;printf(“%the sorted numbers: n”);for( i= 1; i11; i+)printf(“%d ”, ai);,为什么用11,n个数比较n-1趟,第j趟比

6、较n-j次,运行:屏幕显示:input 10 numbers:键盘输入:6,4,-8,3,0,7,9,-2,1 屏幕显示:the sorted numbers:-8 -2 0 1 3 4 6 7 9,6.2 二维数组的定义,6.2.1 二维数组的定义二维数组定义的一般形式为:类型说明符 数组名常量表达式1常量表达式2 如: int stu32, ar24; float grade35;C语言中,二维数组中元素在内存排列顺序是:“按 行 存 放”。 如:a23在内存排列为:a00, a01, a02, a10, a11, a12。同理,C允许定义多维数组。如:三维数组b234,6.2.2 二维数

7、组的引用二维数组元素表示形式:数组名下标1下标2数组元素可以出现在表达式中,也可被赋值。 如:c12= a23+3*b31; 打印数组b的内容: for(i=0;i5;i+) for(j=0;j10;j+) printf(“%d”,bij);printf(“n”);,注意: 下标使用 的范围,6.2.3 二维数组的初始化 采用方法如下:分行给二维数组赋初值。 如:int a23= 2,3,1,1,2,3;或 int a23=2,3,1,1,2,3;,第1种 方法好些,可以对部分元素赋值。 如:static int a33=1,0,1,0,0,1; 相当矩阵:或 static int a33=1

8、, ,0,0,1; 相当矩阵:如果对全部元素赋初值,第一维元素可省,但第二维元素不可省。如:a34=0,1,3,1,2,1,0,2,1,1,2,0;可写成 a 4=0,1,3,1,2,1,0,2,1,1,2,0;,6.2.4 二维数组程序举例例1 将一个二维数组行和列元素互换,存到另一个二维数组中。,程序:#includemain( ) static int a23=1,2,3,4,5,6;static int b32, i , j;printf(“array a: n”);for( i=0; i=1; i+) for( j=0; j=2; j+),printf(“%5d”, aij);bji

9、=aij; printf(“n”); for(i=0; i=2; i+) for( j=0; j=2; j+)printf(“%5d”, bij);printf(“n”); 本例中使用静态定义符号 static 是标准C 的写法,在TC中可以省略。,运行结果如下:array a:1 2 34 5 6 array b:1 42 53 6,例2 求34矩阵中值最大元素的值,及其所在行和列号。,程序: main( ) int i, j, row=0, colum=0, max;static int a34=1,2,3,4,9,7,4,6,-1,2,0,8;max=a00;for( i=0; imax

10、) max=aij; row=i; colum=j;printf(“%max=%d,row=%d,colum=%dn”,max,row,colum); ,运行结果为: max=9,row=1, colum=1,6.3 字 符 数 组4.3.1 字符数组的定义 char c5; 4.3.2 字符数组的初始化static char c7=p,r,o,g,r,a,m;c0 c1 c2 c3 c4 c5 c6,p r o g r a m,g r e e n 0,注意:大括号提供的初值不能超过字符数组的长度,可以小于字符数组的长度,最后为空字串0。 如:static char c6=g,r,e,e,n;

11、 内存分配为: c0 c1 c2 c3 c4 c5,或char c20=“I am a boy”; 或 char c = “I am a boy”;,6.3.3 字符数组的引用例1 输出一个字符串。 程序:main( ) static char c10= I, ,a,m, ,a, ,b,o,y;int i;for( i=0; i10; i+)printf(“%c”, ci); printf(“n”);,运行结果: I am boy,例2 输出一个钻石图形。 main( ) static char diamond 5= , , *, , *, , *,*, , , , *, , *, , *,

12、, , *;int i, j; for( i=0; i5; i+) for( j=0; j5; j+) printf(“%c”, diamondij); , ,6.3.4 字符串和字符串结束标志字符串具是由双引号引起来的串。 如:char c =“I am a boy”; 或 char c = “I am a boy”; 注意:每个字符串都有一串结束标志,用0表示;因此a 表示 ? 个字符,“a” 表示有 ? 个字符的字符串,a和0,如:“Hello”有 ?个字符,“Welcome”有?个字符。(因为每个串后都自动加上结束符“0”。) 6.3.5 字符数组(字符串)的输入输出在学习printf函数和scanf函数时,已学过两种方法:c 表示一次 IO 一个字符,s 表示一次 IO 一个字符串。注意: 输出字符不包括0;,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 初中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号