C++数组和字符串

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数组名表示了一个存储区的首地址 (即第一个数组元素的地址 即第一个数组元素的地址) 即第一个数组元素的地址
常量表达式的值为元素的个数 下标从0开始 a[0] , a[1] … a[9],没有 下标从 开始, 开始 ,没有a[10];
int n; 常量表达式的值不能是实数 cin>>n; int a[n]; …..
一、一维数组的定义
chap4
数组: 数组 是一组具有相同数据类型 的变量 的有序集合。 的有序集合。 格式 : 类型标识符 数组名 常量表达式 数组名[常量表达式 常量表达式];
例如: 例如: int a[10];
类型说明 数组名
上一页 下一页
常量表达式
chap4
int a[10];
数组名: 数组名:用户定义的标识符
#include <iostream.h> 9 void main() { int i , x ; int a[10]={ 5, 8, 0, 1, 9, 2, 6, 3, 7, 4 }; cin>>x; for ( i=0 ; i<10 ; i++) if ( x==a[i] ) { cout<<“find!”<<endl; break; } if ( i==10 ) cout<< “no find!” <<endl; } 5 8 0 1 9 2 6 3 7 4 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]
第四章
chap4
【教学目的与要求】 教学目的与要求】 理解数组的定义和使用, 理解数组的定义和使用 ,掌握数组的 常用操作和字符串的处理。 常用操作和字符串的处理。 教学重点与难点】 【教学重点与难点】 数组的应用,字符串的处理方法。 数组的应用,字符串的处理方法。 教学方法】 【教学方法】 讲授与上机相结合。 讲授与上机相结合。
二、数组的概念
1.数组: 1.数组:由具有相同类型的 数组 固定数量的元素组成的结构 2.数组元素: 2.数组元素:每一个数组元素 数组元素 都是一个变量, 都是一个变量,为了与一般 的变量相区别, 的变量相区别,我们称数组 元素为下标变量 3.下标变量在数组中的位置 3.下标变量在数组中的位置 序号称下标 下标变量的数据类型称为
b[0][0] b[0] b[1] b[0][1] b[0][2]
chap4
格式: 数组名[常量表达式 常量表达式] 常量表达式][常量表达式 格式 类型标识符 数组名 常量表达式 常量表达式
10 40
20 50
30 60
返回 上一页 下一页
二、二维数组的存储结构
存放顺序:按行存放, 存放顺序:按行存放,先顺序存放第 一行的元素, 一行的元素,再存放第二行的元素
chap4
上一页
下一页
chap4
课堂练习: 课堂练习:
有一个数列,它的第一项为 第二项为 有一个数列 它的第一项为0,第二项为 以后 它的第一项为 第二项为1,以后 每一项都是它的前两项之和, 每一项都是它的前两项之和 试生成此数列 的前20项 并按逆序显示出来 并按逆序显示出来. 的前 项,并按逆序显示出来
上一页 下一页
chap4 #include <iostream.h> void main( ) { int j , sum , s[80] ; float ave ; sum=0; for ( j=0; j<80 ; j++) { cin>>s[j]; sum=sum+s[j]; } ave=sum/80.0; cout<< “ave=”<<ave; }
95 80 66 : 84
a[0] a[1] a[2] : a[9]
返 回 上一页 下一页
三、数组元素的引用形式
数组元素的引用: 数组名[下标 下标] 数组元素的引用 数组名 下标 int a[10]; a[0]=2;
chap4
a[0] = a[2]+a[4]*2
• 说明 (1) 下标可以是整型常量或整型表达式 如: a[1] , a[2*3] (2) 数组定义为 int a[5] , 数组长度为 数组长度为5 而下标在0 之内, 而下标在 ---- 4之内 即a[0] ---- a[4] 之内
返 回
上一页
下一页
五、一维数组的输入和输出
chap4
数组的输入和输出只能逐个对数组元素进行操作 字符数组例外) 定义: (字符数组例外) 定义:int a[10], i; 输入方法: 输入方法: 输入第i个数组元素: 输入第 个数组元素: 个数组元素 cin>>a[i]; 输入整个数组元素: 输入整个数组元素 for (i=0;i<10;i++) cin>>a[i]; 输出方法: 输出方法: 输出第i个数组元素: 输出第 个数组元素: 个数组元素 cout<<a[i]; 输出整个数组元素: 输出整个数组元素: for (i=0;i<10;i++) cout<<a[i];
上一页
chap4
i=2 f[2]=f[0]+f[1] i=3 f[3]=f[1]+f[2] i=4 f[4]=f[2]+f[3]
f[1] f[2] f[3] f[4] f[5] :
1 0 2 0 3 0 5 0 8 :
f[19] 6765 0
下一页
输入一个数据, 例4.2.3: 输入一个数据,在已知数组中查找是否有该数据
假设现在要求保存每个学生的成绩, 假设现在要求保存每个学生的成绩, 那就不能只使用一个变量score了 那就不能只使用一个变量score了, score 而需要40个变量,但这样一来输入、 而需要40个变量,但这样一来输入、 40个变量 输出、计算都会变得繁琐. 输出、计算都会变得繁琐. 在这种 情况下,我们可以使用数组类型, 情况下,我们可以使用数组类型,说 明一个含有40个元素的数组, 明一个含有40个元素的数组,每个 40个元素的数组 数组元素存放一个成绩, 数组元素存放一个成绩,成绩的输 入、输出、计算都可通过循环来实 输出、 现
上一页
下一页源自文库
本章授课内容
数组的概念; 数组的概念; 数组的定义; 数组的定义; 数组的应用; 数组的应用; 字符串 常见错误
上一页
chap4
下一页
数组的概念 §4-1 数组的概念
在科学计算和数据处理中,要用到成批数据, 在科学计算和数据处理中,要用到成批数据,这些 数据类型相同,且彼此间存在一定的顺序关系, 数据类型相同,且彼此间存在一定的顺序关系,为了 便于处理,引入了数组类型。 便于处理,引入了数组类型。 数组是一组有序数据的集合; 数组是一组有序数据的集合;数组中的每一个元素 都属于同一个数据类型。 都属于同一个数据类型。用一个统一的数组名和下标 来唯一的确定数组中的元素。 来唯一的确定数组中的元素。 数列 5 一维数组 a[0] a[1] a[2] a[3] a[4] a[5]
上一页
下一页
输入n个成绩 个成绩,求平均分 例4.2.1: 输入 个成绩 求平均分
chap4 输出高于平均分的成绩
#include<iostream.h> void main( ) int s[80], { int s,n,i; n, i; float aver=0.0; cin>>n; for ( i=0; i<n; i++ ) { cin>>s[i]; cin>>s; aver+=s[i]; } aver+=s; aver/=n; } for ( i=0 aver/=n; ; i<n; i++) if(s[i]>aver) cout<<aver; cout<<s[ i] ); }
返 回 上一页 下一页
六、一维数组程序设计举例
用一维数组求Fibonacci 数列 例4.2.2:用一维数组求 用一维数组求 #include<iostream.h> f[0] 1 void main() { int i; int f [ 20 ] = {1,1}; for ( i=2; i<20; i++ ) f [ i ] = f [ i-2 ] +f [ i-1]; for ( i=0; i<20; i++) { if ( i%5 == 0) cout<<‘\n’; cout<<“\t”<<f [ i ]; } }
上一页
下一页
chap4
(3) 对数组中部分元素指定初值 ( 这时不能 省略数组长度 ) 如 : int a[5] = { 1 , 3 , 5 }; (4) 使数组中的全部元素初始值都为 0 如: int a[5] = { 0 , 0 , 0 , 0 , 0 } ; 更简单的写法: 更简单的写法: int a[5]={ 0 } ;
0
2
下标
4
注意: 编译时不会指出错误, 注意 如果出现 a[5] = 72 ; 编译时不会指出错误 系统会 将a[4]后下一个存储单元 赋值为 后下一个存储单元 赋值为72, 但这样可能会破坏数 组以外其他变量的值。 组以外其他变量的值。
返 回 上一页 下一页
四、一维数组的初始化
1. 概念 : 在定义一维数组时对各元素指定初始 值称为数组的初始化
chap4
//生成数列 生成数列 // 逆序显示
返 回
上一页
下一页
§4-2-2 二维数组
一、二维数组的定义 二、二维数组的存储结构 三、二维数组的初始化 四、二维数组元素的引用形式 五、二维数组的输入和输出 六、二维数组程序设计举例
返 回 上一页
chap4
下一页
一、二维数组的定义
int b[2][3]; b为2×3(2行3列)的数组 为 × ( 行 列 b[0] ----b[0][0] b[0][1] b[0][2] b b[1] ----b[1][0] b[1][1] b[1][2]
上一页
chap4
8
3
2
9
6
下一页
chap4
一、数组的引入
例4.1.1:某班有80名学生,求该班成绩的平均分 4.1.1:某班有80名学生, 某班有80名学生 #include <iostream.h> void main( ) { int j , sum , s ; float ave ; sum=0; for ( j=1; j<=80 ; j++ ) { cin>>s; sum=sum+s; } ave=sum/80.0; cout<< “ave=”<<ave; }
返 回 上一页
常量表达式中不能有变量
错误
下一页
二、一维数组的存储结构
chap4
一个数组的所有元素都是连续存储的 int a[10]; 数组元素为: 数组元素为 a[0],a[1],a[2]…..a[9] 所占空间为: 类型长度*元素个数 所占空间为: 类型长度*元素个数
a
数组首地址
1010 1014 1018 : 1046
上一页
下一页
练习答案: 练习答案: #include <iostream.h> Void main( ) { int f[20]={0,1}, j; for(j=2;j<=19; j++) f[j]=f[j-2]+f[j-1]; for( j=19; j>=0; j- -) cout<<f[j]; cout<<endl; }
下标类型(或元素类型) 下标类型(或元素类型)
返 回 上一页 下一页
§4-2-1 一维数组
一、一维数组的定义 二、一维数组的存储结构 三、数组元素的引用形式 四、一维数组的初始化 五、一维数组的输入和输出
chap4
六、一维数组程序设计举例(算法) 一维数组程序设计举例(算法)
下一节 上一页 下一页
chap4
如: int a[5] = { 1 , 3 , 5 , 7 , 9 } ;
2. 说明 (1) 初值用 { } 括起来 数据之间用逗号分开 括起来, 数据之间用逗号分开. (2) 对数组的全体元素指定初值,可以不指明数组 对数组的全体元素指定初值, 的长度, 系统会根据{ 内数据的个数确定数组 的长度 系统会根据 }内数据的个数确定数组 的长度。 的长度。 如 : int a[ ] = { 1 , 3 , 5 , 7 , 9 } ;
chap4
int b[2][3]; ;
b[0][2] b[0][1] b[0][0]
b[0] b[0] 、b[1]可以
作为数组名
b[1]
b[1][2] b[1][1] b[1][0]
上一页 下一页
chap4
数组的元素在内存中是连续存放的 int a[3][3] ; 的存放形式如下 : 1010 1014 a[0] a[1] a[2] a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] a[2][0] a[2][1] a[2][2] 1018 1022 1026 1030 1034
相关文档
最新文档