C语言第六章-数组.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《C语言第六章-数组.ppt》由会员分享,可在线阅读,更多相关《C语言第六章-数组.ppt(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、类型说明符 数组名数组名常量;内存内存映象:映象:编译时分配一片连续的内存空间,数组名为该空间的首地址数组名为该空间的首地址常量地址常量地址。aa55a44a33a22a11a00例如:int a6;一一.一维数组定义一维数组定义数数组组是是具具有有一一定定顺顺序序的的若若干干同同数数据据类类型型变变量量的的集合体集合体。数组要有名称,要有规模数组要有名称,要有规模。a=&a0 数组元素变量表示形式:数组元素变量表示形式:数组名数组名 下标下标 其中:下标可以是其中:下标可以是整型常量或整型整型常量或整型表达式表达式表达式表达式二二.一维数组的引用一维数组的引用 只能逐个引用只能逐个引用数组元
2、素变量数组元素变量,不能一次引用整个数组,不能一次引用整个数组例:int a10;printf(“%d”,a);例:a0=a5+a7-a2*3;/*常量做下标常量做下标*/ai=ai+1;/*表达式做下标表达式做下标*/数组必须数组必须先定义,后使用先定义,后使用例1:读程序。main()int i,a10;for(i=0;i=0;i-)printf(“%d ”,ai);9 8 7 6 5 4 3 2 1 0定义数组定义数组引用数组引用数组例2:读程序,写结果。main()int i,a10,k=0;for(i=0;i10;i+)ai=i;for(i=1;i4;i+)k+=ai+i;print
3、f(“%d ”,k);定义数组的同时,给数组元素变量赋初值。定义数组的同时,给数组元素变量赋初值。例:int a5=2,4,6,8,10;(1)初始数据多于数组规模时语法错误。初始数据多于数组规模时语法错误。例:int a5=2,4,6,8,10,12;()()(2)初始数据少于数组元素个数时初始数据少于数组元素个数时,多出的数组元素赋零零值。例1:int a5=2,4,6;例2:int a10=;区别于区别于:int a10;(3)对对 中的数字可以省,数组元素个数由初始中的数字可以省,数组元素个数由初始值个数决定。值个数决定。int b =8,21,13,7;注注:三三.一维数组初始化一维
4、数组初始化#include void main(void)int a10,k,sum=0;for(k=0;k10;k+)scanf(“%d”,&ak);for(k=0;k10;k+)sum+=ak;printf(“Average is%f n”,sum/10.0);92 85 68 75 54 88 98 45 61 79928568548898457561790123456789a例例1:读入:读入10个学生的成绩存于数组个学生的成绩存于数组,求平均成绩。求平均成绩。四四.一维数组的应用一维数组的应用for(i=0,j=n-1;ij;i+,j-)t=ai;ai=aj;aj=t;分析分析:1.
5、a0 与a9交换,a1 交换 a8,依此类推。例例2:读入:读入10个整数存于数组并输出;将数组中个整数存于数组并输出;将数组中的元素颠倒顺序排放后再输出。的元素颠倒顺序排放后再输出。2.如何控制循环如何控制循环?92856854889845756179a79614588547568988592或或:n=10;for(i=0;in/2;i+)t=ai;ai=an-i-1;an-i-1=t;ijijij只需循环到一半.ijij#include main()int i,j,a10,t;for(i=0;i=9;i+)scanf(“%d”,&ai);for(i=0;i=9;i+)printf(“%d,
6、”,ai);for(i=0,j=9;ij;i+,j-)t=ai;ai=aj;aj=t;for(i=0;i=9;i+)printf(“%d,”,ai);f0=1 (n=0)f1=1 (n=1)fn=fn-1+fn-2 (n2)f0f1f2f3f4f5f19.11f1901452319235#include main()int i;long f 20=1,1;for(i=2;i20;i+)fi=fi-2+fi-1;for(i=0;i20;i+)if(i%4=0)printf(n);printf(%12ld,fi);例3:用数组求Fibonacci数列前20个数步骤步骤:1.输入输入:用用for循环
7、输入循环输入10个整数存于数组个整数存于数组2.处理处理:(a)先令先令max=min=a0(b)依次用依次用ai和和max,min比较比较(循环循环)若若maxai,令令min=ai 3.输出输出:max和和min 例4:读10个整数存入数组,找出其中最大值和最小值。#include void main(void)int a10,max,min,i;printf(“输入10个整数:n);for(i=0;i10;i+)scanf(“%d”,&ai);max=min=a0;for(i=1;i10;i+)if(maxai)min=ai;printf(“最大值为:%dn”,max);printf(“
8、最小值为:%dn”,min);例例5:读入:读入10个整数给数组,找出个整数给数组,找出10个数中最大值个数中最大值所在的所在的位置位置。#include main()int a10,i,k;for(i=0;i=9;i+)scanf(“%d”,&ai);k=0;for(i=1;iak)k=i;for(i=0;i=9;i+)printf(“%dt”,ai);printf(“max=%d,locate=%dn”,ak,k);排序过程:排序过程:(对对n个整数排序个整数排序)1)比较第一个数与第二个数,把较大的数放后面;然后比较第二个数与第三个数,仍把较大的数放后面;依次类推,直至第n-1个数和第n
9、个数比较完为止结果最大的数被安置在最后的位置上,这就完成了第一趟冒泡排序第一趟冒泡排序。2)对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在第n-1个元素位置。3)重复上述过程,共经过n-1趟冒泡排序后,排序结束。例例6:用起泡法对:用起泡法对8个整数按从小到大的顺序个整数按从小到大的顺序排序排序.4938659776132730第一趟k=13849657613273097第二趟k=23849651327307697第三趟k=33849132730657697第四趟k=43813273049657697第五趟k=51327303849657697第六趟k=613273038496576
10、97第七趟k=73849769713972797137627761365276513492749133827384938659776132730初始值N=8a0a1a2a3a4a5a6a79730a77630a66530a54930a43830a330a227a1第第1趟排序趟排序(k=1):从第1个元素开始两两比较,最大的数被放在最后for(i=0;iai+1)temp=ai;ai=ai+1;ai+1=temp;第一次循环后,a7是最大的。第第2趟排序趟排序(k=2):for(i=0;iai+1)temp=ai;ai=ai+1;ai+1=temp;i=8-1-1;i=8-1-2;在第k 趟排
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 第六 数组
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内