C++课件ch04教程.ppt
文本预览下载声明
第 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
显示全部