c语言数组.ppt
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
的顺序排列,现再输入一个数x,要求将x插 入到数组中,使得数组仍然有序。
活动1:一维数组
例2分析:
1、先找到要插入 的位置;
2、将找到的位置 及其后的数后移;
3、将x插入到所 查到的位置。
数组a 2 4 8 12 15
a[0] a[1] a[2] a[3] a[4] a[5]
x6
数组a 2 4
8 12 15
活动1:一维数组
应用练习: 1、将一个数组中的值按逆序重新存放。(教 材P118习题6.5) 2、输入40个字符到字符数组a,统计出其中 字母a(含大小写)的个数。 3、输入10个数到数组a,再输入1个数到x, 将数组a中所有值等于x的元素删除。
活动2:二维数组
二维数组的定义 类型说明符 数组名[常量表达式][常量表达式]
数组a 4 8 15 3 10 6
a[0] a[1] a[2] a[3] a[4] a[5]
a[2]与a[3]交换
数组a 4 8 15 3 10 6
a[0] a[1] a[2] a[3] a[4] a[5]
活动1:一维数组
应用举例:
例3:冒泡排序法。 阅教材P101例 6.3
a[3]与a[4]交换
3 a[4] 12 a[3] 8 a[2] 6 a[1] 2 a[0]
数组a
活动1:一维数组
也可以部分初始化: int a[5]={2,6};
0 a[4] 0 a[3] 0 a[2] 6 a[1] 2 a[0]
数组a
活动1:一维数组
应用举例: 例1:输入10个数,打印出高于平均值的数。 例2:已知一个数组有5元素,且已按从小到大
活动3:字符数组
字符串的输入
方法1:scanf(“%s”,s);
注意不用&符
方法2:gets(s);
注意:若用scanf()则以空格或回车符结束;
若用gets()则以回车符结束。
活动3:字符数组
字符串处理函数(#include <string.h> 1、strcat(s1,s2):字符串连接; char a[80]=“abcde”; char b[20]=“abab”; 则执行strcat(a,b)后,a的数组为”abcdeabab”;
字符串处理函数(#include <string.h> 3、strcmp(s1,s2):字符串比较,返回第一个不相同 字符的ASCII码差值; char a[20]=“chkie; char b[20]=“china”; char c[20]=“china”; x1=strcmp(a,b); x2=strcmp(b,a); x3=strcmp(b,c); 则x1的值为2,x2的值为-2,x3的值为0。 参见教材:P114
活动1:一维数组
引用方式: 数组名[下标]
如:a[3]=50; 又如: scanf(“%d”,&a[1]);
a[4]
50 a[3]
a[2] a[1] a[0] 数组a
活动1:一维数组
初始化方法: int a[5]={2,6,8,12,3};
若是完全初始化,也 可不必说明数组元素 个数。 int a[]={2,6,8,12,3};
例如:int a[2][3]
活动2:二维数组
[0]
[1]
[2]
a[0]
对于int a[2][3]的直观理解
a[1]
在内存中的实际排列
a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2]
活动2:二维数组
二维数组的引用 数组名[下标][下标]
例如:a[0][2]=20;
a[0] a[1] a[2] a[3] a[4] a[5]
x6
数组a 2 4 6 8 12 15
a[0] a[1] a[2] a[3] a[4] a[5]
活动1:一维数组
应用举例:
a[0]与a[1]交换
数组a 8 4 15 3 10 6
例3:冒泡排序法。 阅教材P101例
6.3
a[0] a[1] a[2] a[3] a[4] a[5] a[1]与a[2]不必交换
A B C D E \0
s[0] s[1] s[2] s[3] s[4] s[5]
……
活动3:字符数组
字符串的输出 方法1:printf(“%s”,s); 方法2:puts(s); 注意:字符串的输出以第一个结束符为止。 如有: char s[20]= “abcd\0efgh” ; 则printf(“%s”,s);或puts(s); 只输出:abcd
数组a 4 8 3 15 10 6
a[0] a[1] a[2] a[3] a[4] a[5] a[3]与a[4]交换
数组a 4 8 3 10 15 6
a[0] a[1] a[2] a[3] a[4] a[5]
第一趟下来最大的数已到位
数组a 4 8 3 10 6 15
a[0] a[1] a[2] a[3] a[4] a[5]
[0]
[1]
[2]
a[0]
20
a[1]
活动2:二维数组
二维数组的初始化 int a[2][3]={{2,3,5},{6,8,9}}; 或: int a[2][3]={2,3,5,6,8,9};
[0]
[1]
[2]
a[0] 2
3
5
a[1] 6
8
9
活动2:二维数组
应用举例:教材P106例6.5
[0]
[1]
[2]
[3]
a[0]
1
2
3
4
a[1]
9
8பைடு நூலகம்
7
8
a[2] -10
10
-5
10
活动2:二维数组
应用练习: 输入一个3×4矩阵到二维数组a,一个4×2矩阵
到二维数组b,将a×b的结果存储到二维数组c。
活动3:字符数组
字符串与字符数组的区别 字符串也是字符数组,只是要求以’\0’作为结束符。 如: char s[80]={ ‘A’,’B’,’C’,’D’,’E’,’\0’}; 或: char s[80]= “ABCDE”;
模块6:数组
活动1:一维数组
1、一维数组的定义及引用 定义方式: 类型说明符 数组名[常量表达式]
活动1:一维数组
如:int a[5]; 定义一个具有5个元素
的数组,其下标从0 到4,如右图示。
a[4] a[3]
a[2] a[1] a[0] 数组a
活动1:一维数组
注意问题: 1、数组名规则与变量名相同; 2、常量表达式中不能包含变量; 3、下标从0开始。
参见教材:P113
活动3:字符数组
字符串处理函数(#include <string.h> 2、strcpy(s1,s2):字符串复制; char a[80]; char b[20]=“china”; 则执行strcpy(a,b)后,a的数组为”china”;
参见教材:P113~114
活动3:字符数组
活动1:一维数组
例2分析:
1、先找到要插入 的位置;
2、将找到的位置 及其后的数后移;
3、将x插入到所 查到的位置。
数组a 2 4 8 12 15
a[0] a[1] a[2] a[3] a[4] a[5]
x6
数组a 2 4
8 12 15
活动1:一维数组
应用练习: 1、将一个数组中的值按逆序重新存放。(教 材P118习题6.5) 2、输入40个字符到字符数组a,统计出其中 字母a(含大小写)的个数。 3、输入10个数到数组a,再输入1个数到x, 将数组a中所有值等于x的元素删除。
活动2:二维数组
二维数组的定义 类型说明符 数组名[常量表达式][常量表达式]
数组a 4 8 15 3 10 6
a[0] a[1] a[2] a[3] a[4] a[5]
a[2]与a[3]交换
数组a 4 8 15 3 10 6
a[0] a[1] a[2] a[3] a[4] a[5]
活动1:一维数组
应用举例:
例3:冒泡排序法。 阅教材P101例 6.3
a[3]与a[4]交换
3 a[4] 12 a[3] 8 a[2] 6 a[1] 2 a[0]
数组a
活动1:一维数组
也可以部分初始化: int a[5]={2,6};
0 a[4] 0 a[3] 0 a[2] 6 a[1] 2 a[0]
数组a
活动1:一维数组
应用举例: 例1:输入10个数,打印出高于平均值的数。 例2:已知一个数组有5元素,且已按从小到大
活动3:字符数组
字符串的输入
方法1:scanf(“%s”,s);
注意不用&符
方法2:gets(s);
注意:若用scanf()则以空格或回车符结束;
若用gets()则以回车符结束。
活动3:字符数组
字符串处理函数(#include <string.h> 1、strcat(s1,s2):字符串连接; char a[80]=“abcde”; char b[20]=“abab”; 则执行strcat(a,b)后,a的数组为”abcdeabab”;
字符串处理函数(#include <string.h> 3、strcmp(s1,s2):字符串比较,返回第一个不相同 字符的ASCII码差值; char a[20]=“chkie; char b[20]=“china”; char c[20]=“china”; x1=strcmp(a,b); x2=strcmp(b,a); x3=strcmp(b,c); 则x1的值为2,x2的值为-2,x3的值为0。 参见教材:P114
活动1:一维数组
引用方式: 数组名[下标]
如:a[3]=50; 又如: scanf(“%d”,&a[1]);
a[4]
50 a[3]
a[2] a[1] a[0] 数组a
活动1:一维数组
初始化方法: int a[5]={2,6,8,12,3};
若是完全初始化,也 可不必说明数组元素 个数。 int a[]={2,6,8,12,3};
例如:int a[2][3]
活动2:二维数组
[0]
[1]
[2]
a[0]
对于int a[2][3]的直观理解
a[1]
在内存中的实际排列
a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2]
活动2:二维数组
二维数组的引用 数组名[下标][下标]
例如:a[0][2]=20;
a[0] a[1] a[2] a[3] a[4] a[5]
x6
数组a 2 4 6 8 12 15
a[0] a[1] a[2] a[3] a[4] a[5]
活动1:一维数组
应用举例:
a[0]与a[1]交换
数组a 8 4 15 3 10 6
例3:冒泡排序法。 阅教材P101例
6.3
a[0] a[1] a[2] a[3] a[4] a[5] a[1]与a[2]不必交换
A B C D E \0
s[0] s[1] s[2] s[3] s[4] s[5]
……
活动3:字符数组
字符串的输出 方法1:printf(“%s”,s); 方法2:puts(s); 注意:字符串的输出以第一个结束符为止。 如有: char s[20]= “abcd\0efgh” ; 则printf(“%s”,s);或puts(s); 只输出:abcd
数组a 4 8 3 15 10 6
a[0] a[1] a[2] a[3] a[4] a[5] a[3]与a[4]交换
数组a 4 8 3 10 15 6
a[0] a[1] a[2] a[3] a[4] a[5]
第一趟下来最大的数已到位
数组a 4 8 3 10 6 15
a[0] a[1] a[2] a[3] a[4] a[5]
[0]
[1]
[2]
a[0]
20
a[1]
活动2:二维数组
二维数组的初始化 int a[2][3]={{2,3,5},{6,8,9}}; 或: int a[2][3]={2,3,5,6,8,9};
[0]
[1]
[2]
a[0] 2
3
5
a[1] 6
8
9
活动2:二维数组
应用举例:教材P106例6.5
[0]
[1]
[2]
[3]
a[0]
1
2
3
4
a[1]
9
8பைடு நூலகம்
7
8
a[2] -10
10
-5
10
活动2:二维数组
应用练习: 输入一个3×4矩阵到二维数组a,一个4×2矩阵
到二维数组b,将a×b的结果存储到二维数组c。
活动3:字符数组
字符串与字符数组的区别 字符串也是字符数组,只是要求以’\0’作为结束符。 如: char s[80]={ ‘A’,’B’,’C’,’D’,’E’,’\0’}; 或: char s[80]= “ABCDE”;
模块6:数组
活动1:一维数组
1、一维数组的定义及引用 定义方式: 类型说明符 数组名[常量表达式]
活动1:一维数组
如:int a[5]; 定义一个具有5个元素
的数组,其下标从0 到4,如右图示。
a[4] a[3]
a[2] a[1] a[0] 数组a
活动1:一维数组
注意问题: 1、数组名规则与变量名相同; 2、常量表达式中不能包含变量; 3、下标从0开始。
参见教材:P113
活动3:字符数组
字符串处理函数(#include <string.h> 2、strcpy(s1,s2):字符串复制; char a[80]; char b[20]=“china”; 则执行strcpy(a,b)后,a的数组为”china”;
参见教材:P113~114
活动3:字符数组