一维数组及其应用优秀课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一维数组及其应用优秀课件
一为什么要使用数组
§两个数中得到最 大值?
§If (a>=b) max=a; § else max=b;
§三个数中得到最 大值?
§max=a; §If (max<=b) max=b ; §If (max<=c) max=c
§四个数中得到最 大值?
§max=a; §If (max<=b) max=b ; §If (max<=c) max=c ; §If (max<=d) max=d
程序举例
#include <stdio.h>
#define SIZE 10 例 读10个整数存入数组m,ain找()出其中最大值和最小值
{ int x[SIZE],i,max,min;
printf("Enter 10 integers:\n");
for(i=0;i<SIZE;i++)
步骤:
{ printf("%d:",i+1);
F11 F21 Fn Fn1 Fn2
(n1) (n2) (n3)
#include <stdio.h> 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) printf("\n");
1. 输入:for循环输入10个整数 scanf("%d",&x[i]);
2. 处理:
}
(a) 先令max=min=x[0] max=min=x[0];
(b) 依次用x[i]和max,min比fo较r(i(=循1;环i<)SIZE;i++)
若max<x[i],令max=x[i]{ if(max<x[i]) max=x[i];
4
5
合法标识符 a[0]
表示元素个数 下标从0开始
a[1]
a[2]
编译时分配连续内存a[Fra bibliotek]内存字节数=数组维数*
a[4]
sizeof(元素数据类型)
a[5]
例 idna例tt一ad[a5维tii]ann=[tt5数1id]=0a;;1组ta5[;i的]//;C引语用言对(数不组能不用作变越量界定检义查数,组使维用数时) 要 注意
for (j=0;j<10;j++) scanf(“%d”, &a[j]); ()
一维数组的初始化
❖初始化方式
int a[5]={1,2,3,4,在5}定; 义数组时,为数组元素赋初值 等价于:a[0]=1; (在a[1编]=译2阶; a段[2使]=之3;得a到[3]初=值4;)a[4]=5;
❖说明: 数组不初始化,其元素值为随机数
printf("%12d",f[i]); } }
0
1
f[0]
1
1
f[1]
2
2
f[2]
3
3
f[3]
4
5
f[4]
5
f[5]
……...
19
f[19] f[19]
例 用冒泡法对10个数排序
排序过程: (1)比较第一个数与第二个数,若为逆序a[0]>a[1],则交换;然
后比较第二个数与第三个数;依次类推,直至第n-1个数和第 n个数比较为止——第一趟冒泡排序,结果最大的数被安置在 最后一个元素位置上 (2)对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在 第n-1个元素位置 (3)重复上述过程,共经过n-1趟冒泡排序后,排序结束
97
第 七 趟
n=8
例 49 38 38 38 38
13
27 38 49 49 49 49
30
65 65 65 65 65
38
97 9776 76 1736 13
49
76 1937 13 7267 27 §继续循环
65
13 297 27 7360 30
76
27 3907 30 76 76
30
97
97

97


97
第 二 趟
若min>x[i],令min=x[i] if(min>x[i]) min=x[i];
3. 输出:max和min
}
printf("Maximum value is %d\n",max);
printf("Minimum value is %d\n",min);
}
例 用数组求Fibonacci数列前20个数
第五章 数组
•构造数据类型之一 •数组:有序数据的集合,用数组名标识
[ ] :数组运算符 单目运算符
•元素:属同一数据类型,用数组名和下标确定 优先级(1)
§5.1 一维数组
一维数组的定义
左结合 不能用( )
❖定义方式: 数据类型 数组名[常量表达式];
例 int a[6];
a
0
1
2
3
数组名表示内存首地址, 是地址常量
只给部分数组元素赋初值
当全部数组元素赋初值时,可不指定数组长度
s如tatic iinntt aa[[55]]=; {6,2,3}; 等如等价价于编iin于n:译tta:aa[系[][3=0统]{a]==[1{0根0,62];=,,据236a,,[;34初1,a,55][值=,,1160]}}个=;;;2a数[;a2[](确2=]0)=定;3a数;[a3组[]3=]0维=;0数a;[a4[]4=]0=;0;
❖数组必须先定义,后使用 ❖使用printf, scanf时,只能逐个引用数组元素,不能 一次引用整个数组 ❖数组元素表示形式: 数组名[下标]
其中:下标可以是常量或整型表达式 例 int a[10];
printf(“%d”,a); () 必须 for(j=0;j<10;j++)
printf(“%d\t”,a[j]);
相关文档
最新文档