文档详情

C++课件ch04教程.ppt

发布:2017-05-03约5.35千字共100页下载文档
文本预览下载声明
第 4 章 数组 ;本章学习重点;问题:;什么是数组?;;我们先看例子:用键盘输入10只羊的重量存放到一个名为sheep的数组中;4.1 一维数组;4.1 一维数组 ;一维数组的引用 数组必须先定义,后使用 只能逐个引用数组元素,不能一次引用整个数组 数组元素表示形式: 数组名[下标] 其中:下标可以是常量或整型表达式;;b[0];一维数组的初始化 初始化方式  ;4.1 一维数组 ;4.1.3 一维数组元素的引用;4.1.2 一维数组的存储形式;怎么让两个数组相等?;【例4.1】读入一维数组,并按相反顺序输出各元素。 算法分析: (1)设数组a含有10个元素,下标为0~9。 (2)以下标作为循环控制变量for(i=0;i=9;i++) 在循环体内进行数组元素a[i]的引用 ; ;4.1.4 一维数组的初始化;(2) 数组若在定义时没有赋初值 对于存储在固定存储区(静态存储区)的数值型数组各元素自动赋0,字符串数组的各元素自动赋值空字符。    static int a[5]; //各元素的值是0    static char c[10]; //数组c 各元素为空字符 存储在动态存储区的数组各元素的值不确定。    auto int a[5];    //各元素的值不定    auto char c[10]; 各元素没有初始化,使用前一定要赋值 ;(3) 可以只给一部分元素赋初值,其余元素自动默认为0。 int a[10]={0,1,2,3,4}; (4) 对全部数组元素赋初值时,可不指定数组的长度。 int a[5]={0,1,2,3,4}; 相当于: int a[ ]={0,1,2,3,4}; ;4.1.5 一维数组程序设计举例;2;程序清单;【例4.3】求fibonacci数列的前20项。 ;#include iostream using namespace std; #include iomanip main() { int i,f[20]={1,1}; //给数列第一和第二个元素赋值 for(i=2;i20;i++) f[i]=f[i-2]+f[i-1]; //数组当前元素的值是其前两项的和 for(i=0;i20;i++) //每行输出5个元素 { if(i%5==0) coutendl; //每行输出5个元素 coutsetw(10)f[i]; } };【例4.4】使用冒泡法将6个数据从小到大排序。;冒泡法图示;void main() { int a[7],i,j,t; coutinput 6 numbers:\n; for(i=1;i=6;i++) cina[i]; for(i=1;i6;i++) { for(j=1;j=6-i;j++) { if(a[j]a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } for (i=1;i=6;i++) couta[i]“ ”; };main() { int a[7],i,j,t,flag=1; for(i=1;i=6;i++) cina[i]; for(i=1;i6;i++) { flag=0; for(j=1;j=6-i;j++) { if(a[j]a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; flag=1; } if ( flag == 0) break; } } ;例 用简单选择法对10个数排序(从小到大);例;一维数组的输入和输出;选择法排序;共 43 页 第 * 页;;插入法排序;4.2 二维数组及多维数组;4.2.2 二维数组及多维数组的存储形式;4.2.3 二维数组元素的引用;4.2.4 二维数组的初始化 ;说明:;说明:;说明:;说明:;二维数组的输入和输出;b; #include iomanip void main() { int a[2][3]={{1,2,3},{4,5,6}},b[3][2]; int i,j
显示全部
相似文档