书签 分享 收藏 举报 版权申诉 / 23
上传文档赚钱

类型《C语言程序设计案例教程》课件一维数组的应用.pptx

  • 上传人(卖家):momomo
  • 文档编号:4611227
  • 上传时间:2022-12-25
  • 格式:PPTX
  • 页数:23
  • 大小:4.74MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《《C语言程序设计案例教程》课件一维数组的应用.pptx》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    C语言程序设计案例教程 语言程序设计 案例 教程 课件 数组 应用
    资源描述:

    1、CONTENTS 目 录提出问题 引入新课自主学习 明确考点案例分析 交流提升仿真演练 体验探索提出问题 引入新课PART 011、对数组的操作其实是建立 在对各个数组元素操作的基础上,每个数组元素实际是形式上较为特殊的单个变量,拥有统一的名称和按规律变化的下标号。数组实质是一个有序的集合体,是把一批数据组织在一起的,它们之间存在逻辑上的联系,因此在对数组元素进行处理时,要利用 其名称变化及取值的规律,与循环语句结合,实现对数组元素的连续、有规律的操作。2、C语言在程序设计中,引用数组的前提条件是具有相同数据类型的元素。思考提出问题 引入新课自主学习 明确考点PART 02#include s

    2、tdio.hvoid main()int i,a10;int b6=0,0,0,0,0,0;printf(enter the score:n);for(i=0;i10;i+)scanf(“%d”,&ai);switch(ai/10)case 6:b0+;break;case 7:b1+;break;程序代码如下:将10个人员的考试成绩进行分段统计,考试成绩放在a数组中,各分数段的人数存到b数组中:成绩为60到69的人数存到b0中,成绩为70到79的人数存到b1,成绩为80到89的人数存到b2,成绩为90到99的人数存到b3,成绩为100的人数存到b4,成绩为60分以下的人数存到b5中。案例一

    3、case 8:b2+;break;case 9:b3+;break;case 10:b4+;break;default:b5+;printf(the result is:);for(i=0;i6;i+)printf(%dt,bi);#define N 10/*定义符号常量N为10*/#include main()int aN,k;printf(enter the oraginal number:n);for();printf(the new order is:n);for()printf(%d,);将输入的10个数按输入次序相反的顺序输出。程序部分语句代码已给出如下,请补充完整程序运行结果:e

    4、nter the oraginal number:1 2 3 4 5 6 7 8 9 10 the new order is:10 9 8 7 6 5 4 3 2 1案例二1、排序的含义及作用:排序是数据处理过程中一种重要运算,其作用是将无序的数据按从大到小(降序)或从小到大(升序的顺序排列。2、C语言程序设计中常用的方法方法有冒泡排序法、选择法、插入法、希尔法,这时首先介绍冒泡排序法、选择法。案例三:数组的排序3、冒泡法排序的基本过程(按从小到大):假设有5个数问题分析:(1)先定义一个空间容量为5的一维数组a,通过键盘输入5个数进行初始化。(2)将5个数按冒泡法思想进行排序。(3)输出排序

    5、后的结果。(1)第1轮,从头到尾把数据中的两个相邻的数据进行比较,如果前1个数a0小于第2个数a1,则交换这两个数的位置,依次进行一直将该序列中最小的数沉到序列的最后位置。if(ajaj+1)temp=aj;aj=aj+1;aj+1=temp;(2)第2轮,先去掉第1轮排在最后的那个数据,然后将剩下的数再从头到尾依次比较,以将数列中次小的数沉到最小数前面的位置。(3)依此类推最终将该序列排好。至此,5个原本杂乱无章的数就排序完毕。设置变量i代表比较轮数,变量j代表该轮数组的下标值,则0=i5;0=j5-i 4、冒泡法的主要思想:案例三:数组的排序案例三:数组的排序算法介绍:将相邻的两个数比较将

    6、小的调到前面。以5个数为例说明排序的过程。设int a5=9,7,5,6,8;则a0 97777a1 79555a2 55966a3 66698a4 88889 第一次 第二次 第三次 第四次 结果案例三:数组的排序可以看出通过第一轮的比较和交换,最大值沉到了底部,这正是我们所希望的,所以a4 不需要再参与第二轮的比较。a0 7555a1 5766a2 6677a3 8888 第一次 第二次 第三次 结果如此通过四轮后,就可以将5个数排好序。案例三:数组的排序程序代码如下:方式1:冒泡法下面对N个数(以5个数为例)按从小到大顺序进行排列(9,7,5,6,8)#include#define N

    7、5main()int i,j,k,temp;int aN;/*定义变量*/for(i=0;iN;i+)scanf(%d,&ai);/*初始化数组*。for(i=0;i=N;i+)/*排序进行*/for(j=0;jaj+1)temp=aj;aj=aj+1;aj+1=temp;for(i=0;iN;i+)printf(%5d,ai);/*输出结果*/方法2:选择法排序:(对10个整数排序(从大到小)算法介绍:设有10个元素a0到a9,将a0与a1到a9比较,若a0比a1到a9都大则不进行交换。a1到a9中有一个以上比a0大,则用最大的一个和a0交换,此时,a0中存放了10个数中最大的。第二轮将a1

    8、与a2到a9比较,将剩下的9个数中最大的与a1对换。此时a1中存放的是10个数中次大的。依此类推,共进行9轮比较,a0到a9就已按由小到大顺序存放。案例三:数组的排序案例三:数组的排序程序如下:#include#define N 7main()int i,j,k,temp;int aN;for(i=0;iN;i+)scanf(%d,&ai);for(i=0;iN-1;i+)k=i;for(j=i+1;jaj)k=j;if(i!=k)temp=ai;ai=ak;ak=temp;for(i=0;iN;i+)if(i%10=0)printf(n);printf(%5d,ai);利用数组,求斐波拉契数

    9、列的前20项,并按一行5个数输出。案例四斐波拉契数列是指某个元素等于其相邻的前两个元素之和。具体算法请看书本P83页。#include#define N 5main()int a20=1,1;int i;for(i=2;i20;i+)ai=ai-1+ai-2;for(i=0;i20;i+)if(i%5=0)printf(n);printf(%5d,ai);案例分析 交流提升PART 03【例1】、分析以下程序填空以下程序可求出所有水仙花数(提示:所谓水仙花数是指一个3位正整数,其各位数字的立方之和等于该正整数),请填空。407=4*4*4+0*0*0+7*7*7,故407是一个水仙花数)。#i

    10、ncludemain()int x,y,z,a8,m,i=0;printf(”The special umbers are(in the arrange of l000):n”);for(;m+)x=m/100;y=;z=m%10;if(x*100+y*10+z=x*x*x+y*y*y+z*z*z);i+;for(x=0;xi;x+)printf(”%6d”,ax);【例2】、分析以下程序的运行后输出结果()#includemain()int i,m,n,s=0;int x,a=1,2,3,4,5,6,7,8,9;m=3,n=7;for(i=m;in;i=i+2)s=s+ai;printf(%

    11、d,s);getch();仿真演练,体验探索PART 04改错题:使用冒泡排序法对含有10个元素的数组按从小到大的顺序进行排序输出,在排序前后输出数组各元素的值。程序如下#01#include#02 main()#03#04 int a9,i,j,t;#05 for(i=0;i10;i+)#06 scanf(%d,&ai);#07 for(i=0;i9;i+)#08 for(j=0;jaj+1)#10 aj=t;aj+1=aj;t=aj+1;#11 for(i=0;i10;i+)#12 printf(%d,ai);#13 2、阅读程序题(1)运行以下程序后的输出结果是()#define N 6

    12、void main()int i,j,aN;for(i=1;i1;j-)aj+=aj-1;for(j=1;j=i;j+)printf(“%4d”,aj);printf(“n”);(2)、运行以下程序后的输出结果是()#include#define M 4void main()int i,j,k,m,a4;printf(“Enter 4 numbers:“);for(i=0;i0;i-)k=M-1;for(j=M-1;j0;j-)aj=aj-1;a0=k;for(m=0;mM;m+)printf(“%d”,am);printf(“n”);设一维数组a的4个输入整数是1,2,3,4,则程序的输出是

    13、什么?(3)、以下程序的功能是:判断任意整数x是否为回文数(回文数:顺读与反读都一样的数)提示:(1)求出x的每一位数,放入数组各个元素中(2)数组元素首尾比较,判断是否为回文数(3)for(i=首下标,j=末下标;ij;i+,j-)main()long x;int i,j,n=0,d20;scanf(“%ld”,&x);dodn=x%10;x=x/10;n+;while(x!=0);for(i=0,j=n-1;ij;i+,j-)if(di!=dj)break;if(ij)printf(“NOT”);else printf(“YES”);3、编程题(1)从键盘输入20个整数,求出它们的最小值,并求最小值所在位置。(2)已知五个整数3,5,8,2,9,按从大到小的顺序排列起来

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:《C语言程序设计案例教程》课件一维数组的应用.pptx
    链接地址:https://www.163wenku.com/p-4611227.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库