C语言程序设计第四版PPT谭浩强.ppt
《C语言程序设计第四版PPT谭浩强.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计第四版PPT谭浩强.ppt(56页珍藏版)》请在三一办公上搜索。
1、第6章 数组,课程内容,Ch1 创建一个C语言程序Ch2 算法的重要性及表达Ch3-5 基本程序结构,数据及运算Ch6 数组成批数据如何处理?Ch7 函数大型的程序如何划分?Ch8 指针变量在内存的存储与访问Ch9 结构体较为复杂的数据结构Ch10 文件持久保存数据补充 位运算,习题5.4 统计一串英文字符中的大写字母、小写字母、数字、空格、其他字符的个数。,问题扩展:输入一句英文,统计并输出每个字母使用的频数和频率,例5.8 Fibonacci数列,问题:如何使用数学中的下标变量x1,x2,xn,形式表示一组相关的数据,例5.8 Fibonacci数列用数组解决,int i,fibo40;f
2、ibo0=fibo1=1;for(i=2;i40;i+)fiboi=fiboi-1+fiboi-2;for(i=0;i40;i+)printf(%10d,fiboi);if(i+1)%5=0)printf(n);,数组的概念,有序数据的集合用同一名称表示一组相同类型的相关数据用下标区分各个元素相当于数学中的下标变量,如 x1,x2,.a11,a12,.,a21,.,一维数组的定义,定义:类型说明 数组名常量 定义一个数组的名称、类型、元素个数,一维数组的定义,short int a3;,说明:不能动态定义数组,见P.143说明(3),存储地址,数组元素,存储单元,000000000000011
3、0,a2=6;,一维数组元素的引用,定义后的数组可分别引用各个元素 数组名下标 下标是整型常量或表达式注意:引用的是数组中的元素,而不是整个数组;C编译系统对下标越界的引用不给出错误提示,一维数组的定义和引用-阅读程序,int a5,i;for(i=0;i=3;i+)ai=2*i;a4=100;for(i=0;i=4;i+)printf(a%d=%dn,i,ai);ai=20;printf(a%d=%dn,i,ai);,一维数组的定义和初始化,int a10=2,5,3,1,8,6,9,4,7,1;定义整型数组a并给a0-a9赋初值,一维数组的定义和初始化,int a10=2,5,3,1,8,
4、6;定义整型数组a并给a0-a5赋初值,其余元素值为0,一维数组的定义和初始化,int a5,i;for(i=0;i5;i+)printf(%dn,ai);,一维数组的定义、初始化和引用,例:显示Fibonacci数列前40项。,int i,fibo40=1,1;for(i=2;i40;i+)fiboi=fiboi-1+fiboi-2;for(i=0;i40;i+)printf(%10d,fiboi);if(i+1)%5=0)printf(n);,一维数组的定义和引用,例:求一维数组最大值及下标,int a10=23,41,56,21,15,67,32,44,16,31;int i,max;m
5、ax=a0;for(i=0;imax)max=ai;printf(最大值:%dn,max);,一维数组的定义和初始化,int a=2,5,3,1,8,6;定义整型数组a并赋初值,该数组包含6个元素a0-a5,一维数组的定义和引用,例:在一维数组中查找给定数据及下标,int a10=23,41,56,21,15,67,32,44,16,31;int i,key,index=-1;printf(输入要查找的值:);scanf(%d,这是顺序查找法。还有一种常用的折半查找法,数据量大且有序时使用,效率更高。,折半查找,int a11=5,13,19,21,37,56,64,75,80,88,92;i
6、nt index=-1,key,low,high,middle;scanf(%d,一维数组的定义和引用,例:排序算法,算法演示冒泡排序选择排序插入排序快速排序,基本思路:依次将数组中相邻两元素比较,并按要求的顺序交换,从而将最大/最小的数推至最前或最后;对余下的数重复上述步骤,最终获得所需的顺序,冒泡排序,对数组元素a0-a5升序排序比较a5和a4,若顺序不符则交换;比较a4和a3,若顺序不符则交换;比较a3和a2,若顺序不符则交换;比较a2和a1,若顺序不符则交换;比较a1和a0,若顺序不符则交换。,冒泡排序,=结果:最小的数被换到了a0中。=对a1-a5重复上述步骤,将其中最小的数换到a1
7、中。=重复上述步骤直至完成排序。,冒泡排序,冒泡排序,int a6,i,j,t;for(i=0;i=i;j-)if(aj=aj-1)t=aj;aj=aj-1;aj-1=t;for(i=0;i6;i+)printf(%dn,ai);,基本思路:在一列数中找到最小/最大值,与指定位置的数交换;对余下的数重复上述步骤,最终获得所需的顺序。,选择排序,对数组元素a0-a5升序排序找a0至a5的最小值,与a0交换其值找a1至a5的最小值,与a1交换其值找a2至a5的最小值,与a2交换其值找a3至a5的最小值,与a3交换其值找a4至a5的最小值,与a4交换其值,选择排序,for(i=0;i5;i+)imi
8、n=i;min=ai;/*求ai之后元素的最小值*/for(j=i+1;j=5;j+)if(ajmin)min=aj;/*变量min记录最小值*/imin=j;/*变量imin记录最小值的下标*/temp=ai;ai=aimin;aimin=temp;/*最小值与ai交换*/,选择排序,选择排序,for(i=0;i5;i+)imin=i;for(j=i+1;j=5;j+)if(ajaimin)imin=j;/*只记录最小值的下标imin,最小值就是aimin*/if(imin!=i)t=ai;ai=aimin;aimax=t;/*当imin=i时无需交换*/,对选择排序法进行改进,二维数组的定
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 第四 PPT 谭浩强
链接地址:https://www.31ppt.com/p-5376857.html