第5苹款组 5.1数组的桡念 5,2一维数组的定义和引用 5,3二指数组的定义和引用 5,4用数组名作盖数参数 55字符数组 *5.6外+处理字符串的方法一 字符串美与字符串变量
第5章 数组 5.1 数组的概念 5.2 一维数组的定义和引用 5.3 二维数组的定义和引用 5.4 用数组名作函数参数 5.5 字符数组 *5.6 C++处理字符串的方法—— 字符串类与字符串变量
5.1数组的撬念 数组是有序数据的集合。 数组是有类型属性的。同一数组中的每一 个元素都必须属于同一数据类型。 一个数组在内存中占一片连续的存储单元。 数组名和下标唯一地标识一个数组中的一 个元素。 要寻找一个数组中的某一个元素必须给出 两个要素,即数组名和下标
5.1 数组的概念 数组是有序数据的集合。 数组是有类型属性的。同一数组中的每一 个元素都必须属于同一数据类型。 一个数组在内存中占一片连续的存储单元。 数组名和下标唯一地标识一个数组中的一 个元素。 要寻找一个数组中的某一个元素必须给出 两个要素,即数组名和下标
5,2一獾熬组的定义和引用 一、定义一维数组 般格式: 类型标识符 数组名[常量表达式]; 例如:inta[10]; 说明: ()数组名定名规则和变量名相同,遵循标识 符定名规则。 (2)用方括号括起来的常量表达式表示下标值。 (3)常量表达式的值表示元素的个数,即数组 长度。下标从0开始
5.2 一维数组的定义和引用 一、定义一维数组 一般格式: 类型标识符 数组名[常量表达式]; 例如:int a[10]; 说明: (1) 数组名定名规则和变量名相同,遵循标识 符定名规则。 (2) 用方括号括起来的常量表达式表示下标值。 (3) 常量表达式的值表示元素的个数,即数组 长度。下标从0开始
5,2一推数姐的灾义和引用 (4)常量表达式中可以包括常量、常变量和 符号常量,但不能包含变量。 例如: int n; cin>>nj int a [n];J 改为: const int n=5; int a [n];
5.2 一维数组的定义和引用 (4) 常量表达式中可以包括常量、常变量和 符号常量,但不能包含变量。 例如: int n; cin>>n; int a[n]; 改为: const int n=5; int a[n]; ✓
52一雅数组的定义和引用 二、引用一维数组的元素 数组元素的表示形式: 数组名[下标] 下标可以是整型常量或整型表达式。 例如:a[0]=a[5]+a[7]-a[2*3] 例:数组元素的引用
5.2 一维数组的定义和引用 二、引用一维数组的元素 数组元素的表示形式: 数组名[下标] 下标可以是整型常量或整型表达式。 例如:a[0]= a[5]+ a[7]- a[2*3] 例:数组元素的引用
5,2一雅数组的突义和引用 #include using namespace std; int main() Kint i,a [10]; for(i=0;i=0;i-) cout<<a[i]<<""; cout<<endl; return O; } 运行结果: 9876543210
5.2 一维数组的定义和引用 #include using namespace std; int main( ) {int i,a[10]; for (i=0;i=0;i-) cout<<a[i]<<″ ″; cout<<endl; return 0; } 运行结果: 9 8 7 6 5 4 3 2 1 0
5,2一推数组的定义和引用 三、一维数组的初始化 1.在定义数组时对数组元素赋予初值。 inta10]={0,1,2,3,4,5,6,7,8,9}; 2.对部分元素赋予初值。 imta[10]={0,1,2,3,4}; 3.对数组中全部元素赋予初值1。 inta[10]={1,1,1,1,1,1,1,1,1,1} 4.对全部数组元素赋初值可不指定数组长度。 inta={1,2,3,4,5,6} 四、一维数组程序举例
5.2 一维数组的定义和引用 三、一维数组的初始化 1.在定义数组时对数组元素赋予初值。 int a[10]={0,1,2,3,4,5,6,7,8,9}; 2.对部分元素赋予初值。 int a[10]={0,1,2,3,4}; 3.对数组中全部元素赋予初值1。 int a[10]={1,1,1,1,1,1,1,1,1,1}; 4.对全部数组元素赋初值可不指定数组长度。 int a[ ]={1,2,3,4,5,6} 四、一维数组程序举例
例1:用数组来处理求Fibonacci数列问题。 #include #include using namespace std; int main() int i访 intf[20]={1,1; for(i=2;i<20;i++) f[i]=f[i-2]+f[i-1]; for(i=0;i<20i++) if(i%5==0)cout<<endl; cout<<setw(8)<<f [i]; } cout<<endl; return 0;}
例1:用数组来处理求Fibonacci数列问题。 #include #include using namespace std; int 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<<endl; cout<<setw(8)<<f[i]; } cout<<endl; return 0;}
例2:编写程序,用起泡法对10个数排序(按由小 到大顺序)。算法思想:将相邻两个数比较,将 小的调到前头,(即大数下沉,小数上浮) 985420 6个数,产生最大数,比较5次 个 8 95 420 5个数,产生最大数,比较4次 8 5 20 4个数,产生最大数,比较3次 3个数,产生最大数,比较2次 8 5 4 2 0 8542 90 2个数,产生最大数,比较1次 854209 6个数,完全排序好,比较5趟
例2:编写程序,用起泡法对10个数排序(按由小 到大顺序)。算法思想:将相邻两个数比较,将 小的调到前头,(即大数下沉,小数上浮)。 8 9 5 4 2 0 9 8 5 4 2 0 8 5 9 4 2 0 8 5 4 9 2 0 8 5 4 2 9 0 8 5 4 2 0 9 6个数,产生最大数,比较5次 5个数,产生最大数,比较4次 4个数,产生最大数,比较3次 3个数,产生最大数,比较2次 2个数,产生最大数,比较1次 6个数,完全排序好,比较5趟
如果有n个数,则要进行n-1趟比较。 在第i趟比较中要进行n-i次两两比较。 输入n个数给a1]到an for i=1 to n-1 for j=1 to n-j a[jl<a[j+1] 是 否 al←→ aj+1] 输出a1)到anl
如果有 n 个数,则要进行n-1 趟比较。 在第 i 趟比较中要进行 n-i 次两两比较。 输入 n 个数给 a[1] 到 a[n] for i=1 to n-1 for j=1 to n-j a[j]<a[j+1] 是 否 a[j] a[j+1] 输出 a[1] 到 a[n]