[小学教育]ch07-数组

上传人:油条 文档编号:49770719 上传时间:2018-08-02 格式:PPT 页数:77 大小:1.10MB
返回 下载 相关 举报
[小学教育]ch07-数组_第1页
第1页 / 共77页
[小学教育]ch07-数组_第2页
第2页 / 共77页
[小学教育]ch07-数组_第3页
第3页 / 共77页
[小学教育]ch07-数组_第4页
第4页 / 共77页
[小学教育]ch07-数组_第5页
第5页 / 共77页
点击查看更多>>
资源描述

《[小学教育]ch07-数组》由会员分享,可在线阅读,更多相关《[小学教育]ch07-数组(77页珍藏版)》请在金锄头文库上搜索。

1、a11x1+a12x2+.+a1nxn=b1 a21x1+a22x2+.+a2nxn=b2. an1x1+an2x2+.+annxn=bna i j i 称为行下标变量 j 称为列下标变量 统称为下标变量。【引例】Fibonacci 数列1, 1, 2, 3, 5, 8, 13, 21 for(n=3; nvoid main() int k, a10;for(k=0; k void main() int n;long f40=1, 1; for(n=2; nmax,则aimax,ik。 输出max和k。【例7.2】找出一维数组中的最大数及其下标。#define N 10int aN;然后用ma

2、x与后面各元素ai逐个进行比较 (i=1 to N-1),若aimax则max=ai,k=i。 给数组输入数据。127.1 一维数组的定义和引用#include #define N 10 void main() int max, k, i, aN;for(i=0; imax) max=ai; k=i; printf(“最大数=%d, 下标=%dn“, max, k); 137.1 一维数组的定义和引用【7.3】输入一个数,查找其在一维数组中是否存 在。若存在,输出它在数组中的下标;若不存在 ,输出“不存在”。设变量x代表该数,数组名为a。 思路: 把该数x与数组a中的元素从头到尾一一进 行比较

3、,这种方法称为顺序查找法。 #include #define N 20 void main() int x, i;int aN=55, 62, 93, 87, 10, 23, 38, 71, 35, 91, 99, 86, 15, 9, 54, 28, 64, 48, 22, 67;147.1 一维数组的定义和引用printf(“一维数组为: n“);for(i=0; i #define N 15 void main() int x, top, bot, mid, i;int aN=10, 17, 20, 22, 31, 44, 51, 59, 68, 73, 89, 95, 120, 133

4、, 137;printf(“一维数组为: n“);for(i=0; i #define N 10 void main() int aN, x, i;printf(“请给数组输入%d个数据:n“, N);for(i=0; i=0; i-)ai+1=ai;a0=x;printf(“移动后的数组为:n“);for(i=0; i #define N 10 void main() int aN+1=14, 25, 28, 33, 45, 56, 68, 72, 81, 95;int x, p, i;printf(“插入前的数组为: n“);for(i=0; i=aN-1)aN=x;elsefor(i=0

5、; ix) p=i; break; for(i=N-1; i=p; i-)ai+1=ai;ap=x;printf(“移动后的数组为:n“);for(i=0; i #define N 10 void main() int aN, i, j, t; printf(“请输入 %d 个数:n“, N); for(i=0; iai+1 ) /* 交换 */ t=ai; ai=ai+1; ai+1=t; printf(“排序结果:n“);for(i=0; i #define N 10 void main() int aN, i, j, t, min, k;printf(“请输入 %d 个数:n“, N);

6、 for(i=0; i # N 10 void main( ) a, k printf(“输入%d个整数”, );for(k=0; k=0; )printf(“%5d”, );printf (“n”); 33答案 define N int k- N - ak7.1 一维数组的定义和引用34一、二维数组的定义二、二维数组元素的使用三、二维数组的初始化四、二维数组程序举例7.2 二维数组的定义和引用(p135-140)35 定义形式: 二维数组可看作是一种特殊的一维数组:它 的每个元素又是一个一维数组。 二维数组在内存中是按行存放的,即先顺序 存放第0行的元素,再存放第1行的元素,。一、二维数组的

7、定义类型 数组名常量表达式常量表达式;【例】int a34, b510;7.2 二维数组的定义和引用36 二维数组在内存中是按行存放的,即先顺序 存放第0行的元素,再存放第1行的元素,。 【例】int a34;a00 a01 a02 a03 a10 a11 a12 a13 a20 a21 a22 a23第0行 数组名的含义:与一维数组类 似,数组名代表数组首个元素的 地址,即 a for (i=0; i #define N 2 #define M 3 void main() int aNM= 1, 2, 3, 4, 5, 6 , bMN;int i, j; printf(“数组a: n“);f

8、or (i=0; i #define N 4 void main() int aNN, i, j, s=0;printf(“请输入%d*%d方阵的数据:n“, N, N); for(i=0; i #define N 3 #define M 4 void main() int aNM, i, j;int max, max_i, max_j, min, min_i, min_j;printf(“请输入%d*%d矩阵的数据:n“, N, M); for(i=0; imax) max=ai j; max_i=i; max_j=j; if(ai j #define N 3 #define M 4 voi

9、d main() int aNM, i, j, k;int max, max_j;printf(“请输入%d*%d矩阵的数据:n“, N, M);for(i=0;imax) max=aij; max_j=j; for(k=0; k=N) printf(“a%d%d=%dn“, i, max_j, max); 52一、字符数组的定义二、字符数组的初始化三、字符数组的输入输出四、字符串处理函数五、字符数组应用举例7.3 字符数组(p135-140)537.3 字符数组用于存放字符的数组是字符数组,字符数组的 每个元素存放一个字符。其定义方法与其它类型的数组类似。【例】char c5;c0=h; c

10、1=a;c2=p; c3=p; c4=y;一、字符数组的定义54字符数组同样可以在定义时给其赋初值。 1. 按元素赋初值 当初值个数小于数组长度时,后面的元素为 空字符0。【例】char c10= I, , a, m, , h, a, p, p, y ; c0 c1 c2 c3 c4 c5 c6 c7 c8 c9二、字符数组的初始化【例】char c10= h, a, p, p, y ; happy000007.3 字符数组551. 按元素赋初值 若在赋初值时未指定数组长度,则数组长度 由初值个数确定。 注:实际使用中,这种赋初值形式较少使用 ,常以字符串形式赋初值。 2. 以字符串形式赋初值

11、【例】char c = C, h, i, n, a ; 则数组c长度为5。二、字符数组的初始化【例】 char c6=“china“; 7.3 字符数组567.3 字符数组2. 以字符串形式赋初值 字符串常量在内存中存放时,系统自动在字 符串尾加一个空字符0作为字符串结束标志。【例】 char c6=“china“; char c6=“china“;char c =“china“;char c =“china“;char c = C, h, i, n, a, 0 ;char c = C, h, i, n, a ;572. 以字符串形式赋初值 字符串常量在内存中存放时,系统自动在字 符串尾加一个

12、空字符0作为字符串结束标志。 引申的概念:字符串长度一般指字符串的有 效长度,即0之前的字符个数。因此,在以字符串形式赋初值时,必须保证: 数组长度(数组元素个数)字符串长度+1。 注意:可以以字符串形式赋初值,但不能在 赋值语句中对字符串进行赋值(需使用字符串函数 )。7.3 字符数组【例】 char c6=“china“; 【例】 char str110, str210;str1=“China“; str2=str1; 58【例】char c10;scanf(“%c%c“, printf(“%c%c“, c0, , c9); 字符数组的输入输出有两种方法。 1. 逐个字符输入输出:采用%c

13、格式符。三、字符数组的输入输出for(i=0; i字符串2)0 (字符串1=字符串2) -1 (字符串17.3 字符数组69五、字符数组应用举例7.3 字符数组707.3 字符数组算法流程: 输入str1和str2。 找到str1结束标志0的位置,用变量k表示。 将str2中的字符逐个添加到str1的后边。【例7.14】实现字符串连接函数strcat的功能。 000000dcbastr10000000zyxstr2000zyxdcbastr1kk=0; while(str1k!=0) k=k+1;for(i=0; str2i!=0; i+, k+) str1k=str2i;717.3 字符数组

14、#include void main() char str180, str240; int i, k=0; printf(“请输入字符串1: “); gets(str1); printf(“请输入字符串2: “); gets(str2); k=0; while(str1k!=0) k=k+1; for(i=0; str2i!=0; i+, k+) str1k=str2i; str1k=0; printf(“连接后的字符串1: %sn“, str1); 72设一个二维的字符数组str320,每一行代表 一个字符串,即3个字符串分别为str0、str1、 str2。再设一维字符数组string20表示最大的字符串 。算法: 用gets函数输入3个

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

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