第三讲-数组、字符串精讲
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
注意参数
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
二维数组
定义: 类型名 数组名[常量表达式1][常量表达式2];
例如:int num[4][6];
[0,0] [0,1] [0,2] [0,3] [0,4] [0,5] [1,0] [1,1] [1,2] [1,3] [1,4] [1,5] [2,0] [2,1] [2,2] [2,3] [2,4] [2,5] [3,0] [3,1] [3,2] [3,3] [3,4] [3,5]
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
一维数组
例3.4 写出下面程序的运行结果。
当给数组的部分元素赋初值后,其他元素的初值自动赋0值。
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
一维数组
可以使用memset函数给数组变量赋初值。 需要#include <cstring>头文件
输入两行内容,第1行是原文(长度不超过200个字符),第2行包含以空 格分隔的两个字符A和B,要求将原文中所有的字符A都替换成字符B。
输入样例: I love China. I love Beijing. IU
输出样例: U love China. U love Beijing.
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
一维数组
利用C++自带的库函数进行排序 需要include <algorithm>头文件 格式:sort(first,last,comp),first是待排序数组的 开始地址,last是结束地址,是一个左闭右开区间,即 [first,last),comp函数是数组中元素先后次序的判断 依据。
第三讲 数组、字符串
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
一维数组
同类型变量或对象的集合称为数组。 定义:类型名 数组名[元素个数]
元素个数必须是常数或常量表达式; 数组下标取值从0开始,使用数组时下标不能越界; 同一数组的所有数组元素在内存中占用一片连续的存储单元。
字符数组
字符数组的定义格式: char 数组名[元素个数];
例3.11 写出下面程序的在运使行用结双果引。号初始化时,字符个
数必须比所定义的数组元素个数 少1,因为数组的最后一个位置
用来存放字符“\0”。
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
字符数组
例3.12 在应用计算机编辑文档的时候,我们经常遇到替换任务。例如把 文档中的“电脑”都替换成“计算机”。现在请你模拟一下这个操作。
引用:数组名[下标]
下标可以是任何值为整型的表达式,可以包含变量和函数调用; 下标值应在数组定义的下标值范围内。
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
一维数组
例3.1斐波那契数列指的是这样一个数列:0、1、1、2、3、 5、8、13、21、……求数列的前20项并按从大到小的顺序输 出。
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
二维数组
分析:从第3行开始,每行第1个和最后1个值为1,其他 值为其上方和左上方数字和。
设二维数组c[i][j]存储行坐标为i、列坐标为j位置上元 素值,则c[i][j]=c[i-1][j-1]+c[i-1][j]。
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
一维数组
例3.7 从键盘读入10个数,然后从小到大输出。
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
一维数组
例3.8 从键盘读入10个数,然后从大到小输出。
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
一维数组
例3.9 成绩排序。给出班里某门课程的成绩单,请你按成绩从高到低对 成绩单排序输出,如果有相同分数则名字字典序小的在前。
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
一维数组
排序:选择排序、冒泡排序、插入排序、计数排序、快排序…… 例3.5 输入n个数,将n个数按从小到大的顺序输出(n<=1000)
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
一维数组
例3.6 输入n个数,存入数组a中,每一个数都是介于0到k 之间的整数,此处k为某个整数(n<=100000,k<=1000), 按从小到大的顺序输出a数组的数据。
输入格式:第一行为n (0 < n < 20),表示班里的学生数目;接下来的n 行,每行为每Leabharlann Baidu学生的名字和他的成绩, 中间用单个空格隔开。名字只 包含字母且长度不超过20,成绩为一个不大于100的非负整数。
输出格式:把成绩单按分数从高到低的顺序进行排序并输出,每行包含 名字和分数两项,之间有一个空格。
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
二维数组
例3.10 杨辉三角是一个由数字排列成的三角形数表,一
般形式如下: 1 11 121 1331 14641 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 输入数据:一个正整数n,表示三角形的行数。 输出数据:n行杨辉三角形
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
一维数组
例3.2 输入年、月、日,输出该天是这一年的第几天。 为什么多了一个0?
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
一维数组
例3.3 下面两个程序没有初始化数组,观察程序默认的数 组变量初值。
如果数组定义放在int main()之内,其初始值是随机的。
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
一维数组
初始化:在定义一个一维数组的同时,可以给数组中的元 素赋初值。
格式:类型名 数组名[常量表达式]={值1,值2,……} 例如:
int a[10]={0,1,2,3,4,5,6,7,8,9} 相当于:a[0]=0;a[1]=1;a[2]=2;……;a[9]=9
注意参数
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
二维数组
定义: 类型名 数组名[常量表达式1][常量表达式2];
例如:int num[4][6];
[0,0] [0,1] [0,2] [0,3] [0,4] [0,5] [1,0] [1,1] [1,2] [1,3] [1,4] [1,5] [2,0] [2,1] [2,2] [2,3] [2,4] [2,5] [3,0] [3,1] [3,2] [3,3] [3,4] [3,5]
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
一维数组
例3.4 写出下面程序的运行结果。
当给数组的部分元素赋初值后,其他元素的初值自动赋0值。
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
一维数组
可以使用memset函数给数组变量赋初值。 需要#include <cstring>头文件
输入两行内容,第1行是原文(长度不超过200个字符),第2行包含以空 格分隔的两个字符A和B,要求将原文中所有的字符A都替换成字符B。
输入样例: I love China. I love Beijing. IU
输出样例: U love China. U love Beijing.
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
一维数组
利用C++自带的库函数进行排序 需要include <algorithm>头文件 格式:sort(first,last,comp),first是待排序数组的 开始地址,last是结束地址,是一个左闭右开区间,即 [first,last),comp函数是数组中元素先后次序的判断 依据。
第三讲 数组、字符串
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
一维数组
同类型变量或对象的集合称为数组。 定义:类型名 数组名[元素个数]
元素个数必须是常数或常量表达式; 数组下标取值从0开始,使用数组时下标不能越界; 同一数组的所有数组元素在内存中占用一片连续的存储单元。
字符数组
字符数组的定义格式: char 数组名[元素个数];
例3.11 写出下面程序的在运使行用结双果引。号初始化时,字符个
数必须比所定义的数组元素个数 少1,因为数组的最后一个位置
用来存放字符“\0”。
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
字符数组
例3.12 在应用计算机编辑文档的时候,我们经常遇到替换任务。例如把 文档中的“电脑”都替换成“计算机”。现在请你模拟一下这个操作。
引用:数组名[下标]
下标可以是任何值为整型的表达式,可以包含变量和函数调用; 下标值应在数组定义的下标值范围内。
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
一维数组
例3.1斐波那契数列指的是这样一个数列:0、1、1、2、3、 5、8、13、21、……求数列的前20项并按从大到小的顺序输 出。
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
二维数组
分析:从第3行开始,每行第1个和最后1个值为1,其他 值为其上方和左上方数字和。
设二维数组c[i][j]存储行坐标为i、列坐标为j位置上元 素值,则c[i][j]=c[i-1][j-1]+c[i-1][j]。
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
一维数组
例3.7 从键盘读入10个数,然后从小到大输出。
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
一维数组
例3.8 从键盘读入10个数,然后从大到小输出。
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
一维数组
例3.9 成绩排序。给出班里某门课程的成绩单,请你按成绩从高到低对 成绩单排序输出,如果有相同分数则名字字典序小的在前。
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
一维数组
排序:选择排序、冒泡排序、插入排序、计数排序、快排序…… 例3.5 输入n个数,将n个数按从小到大的顺序输出(n<=1000)
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
一维数组
例3.6 输入n个数,存入数组a中,每一个数都是介于0到k 之间的整数,此处k为某个整数(n<=100000,k<=1000), 按从小到大的顺序输出a数组的数据。
输入格式:第一行为n (0 < n < 20),表示班里的学生数目;接下来的n 行,每行为每Leabharlann Baidu学生的名字和他的成绩, 中间用单个空格隔开。名字只 包含字母且长度不超过20,成绩为一个不大于100的非负整数。
输出格式:把成绩单按分数从高到低的顺序进行排序并输出,每行包含 名字和分数两项,之间有一个空格。
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
二维数组
例3.10 杨辉三角是一个由数字排列成的三角形数表,一
般形式如下: 1 11 121 1331 14641 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 输入数据:一个正整数n,表示三角形的行数。 输出数据:n行杨辉三角形
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
一维数组
例3.2 输入年、月、日,输出该天是这一年的第几天。 为什么多了一个0?
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
一维数组
例3.3 下面两个程序没有初始化数组,观察程序默认的数 组变量初值。
如果数组定义放在int main()之内,其初始值是随机的。
江苏省青少年信息学奥林匹克冬令营(C语言班)-金中河西
一维数组
初始化:在定义一个一维数组的同时,可以给数组中的元 素赋初值。
格式:类型名 数组名[常量表达式]={值1,值2,……} 例如:
int a[10]={0,1,2,3,4,5,6,7,8,9} 相当于:a[0]=0;a[1]=1;a[2]=2;……;a[9]=9