循环和数组ppt课件

上传人:494895****12427 文档编号:240649736 上传时间:2024-04-27 格式:PPT 页数:18 大小:79.33KB
收藏 版权申诉 举报 下载
循环和数组ppt课件_第1页
第1页 / 共18页
循环和数组ppt课件_第2页
第2页 / 共18页
循环和数组ppt课件_第3页
第3页 / 共18页
资源描述:

《循环和数组ppt课件》由会员分享,可在线阅读,更多相关《循环和数组ppt课件(18页珍藏版)》请在装配图网上搜索。

1、1循循 环环 与与 数数 组组 一、级一、级 数数 问问 题题 二、多二、多 重重 循循 环环 三、穷三、穷 举举 法法 四、数四、数 组组 的的 应应 用用循 环 与 数 组2一、级数问题一、级数问题 级数求和要解决级数求和要解决2个问题:个问题:通项的变化规律;通项的变化规律;求求和的结束条件(按给定项数或按某种要求)。和的结束条件(按给定项数或按某种要求)。例:习题集例:习题集P71 5题题编写程序,计算当编写程序,计算当 时时N的值的值分析:分析:本题中通项的变化规律是每次分母加本题中通项的变化规律是每次分母加1,求和的结束条,求和的结束条件是件是sum10。for(n=1;sum=1

2、0.0;n+)sum=sum+1.0/n;一、级数问题3例:习题集例:习题集P72 21题题 某级数的前两项某级数的前两项A1=1,A2=1,以后各项具有关系以后各项具有关系:An=An-2+2An-1。编写程序,要求依次编写程序,要求依次对于整数对于整数M=100,1000,10000求出对应的求出对应的n值,使其满足值,使其满足SnM且且Sn+1M,这里这里Sn=A1+A2+An。分析:分析:本题中通项的变化规律是本题中通项的变化规律是An=An-2+2An-1,求和的结束条求和的结束条件是件是SnM且且Sn+1M。按此条件,每次循环判断求和结束时都按此条件,每次循环判断求和结束时都要用前

3、一次的和要用前一次的和Sn-1以及本次的和以及本次的和Sn,因此要定义,因此要定义2个变量分个变量分别存放两次的和,循环体中要计算本次的和别存放两次的和,循环体中要计算本次的和Sn=Sn-1+An,若若不满足结束条件,则要将本次的和保留在前一次的和的变量不满足结束条件,则要将本次的和保留在前一次的和的变量中,然后继续循环,直到满足条件。另外还要注意题目给出中,然后继续循环,直到满足条件。另外还要注意题目给出3 个个M的值的值,也就是说,级数求和要做也就是说,级数求和要做3次,因此要再加一重循次,因此要再加一重循环,构成二重循环。环,构成二重循环。例:习题集P72 21题4循环循环(m分别取分别

4、取100,1000,10000)a1,a2,s1赋初值赋初值;for(n=3;n+)/*n是项数,从第是项数,从第3项开始项开始*/计算计算an,s2;if(s1=m)break;else s1=s2;a1=a2;a2=an;printf(n=%dn,n-1);循环(m分别取100,1000,10000)5二、多重循环二、多重循环 多重循环是循环嵌套(循环套循环),要特别注意它多重循环是循环嵌套(循环套循环),要特别注意它的执行过程是外循环每执行一次,内循环要执行若干次。的执行过程是外循环每执行一次,内循环要执行若干次。例:习题集例:习题集P71 11题题 编写程序,计算编写程序,计算5008

5、00区间内素数的个数区间内素数的个数cnt,并,并按所求素数的值从大到小的顺序,计算其间隔减、加之按所求素数的值从大到小的顺序,计算其间隔减、加之和,即第和,即第1个素数个素数-第第2个素数个素数+第第3个素数个素数-第第4个素数个素数+第第5个素数个素数的值的值sum。分析:分析:按照题意,要对按照题意,要对800500区间(因为是从大到小)内区间(因为是从大到小)内的数逐个作出判断,而判断一个数是否为素数又要用一重循的数逐个作出判断,而判断一个数是否为素数又要用一重循环,这样就构成了二重循环(外循环控制区间范围,内循环环,这样就构成了二重循环(外循环控制区间范围,内循环判断一个数是否为素数

6、),每找出一个素数,判断一个数是否为素数),每找出一个素数,cnt就要加就要加1,再根据再根据cnt的奇偶对的奇偶对sum进行加或减计算。进行加或减计算。二、多重循环6 cnt=0,sum=0;循环循环(i=800500)判断判断i 是否为素数是否为素数;if(i是素数是素数)cnt+;输出输出cnt,i;if(cnt为偶数为偶数)sum-=i;else sum+=i;输出输出sum;cnt=0,sum=0;7例:习题集例:习题集P71 15题题 编写程序验证下列结论:任何一个自然数编写程序验证下列结论:任何一个自然数n的立方,的立方,都等于都等于n个连续奇数之和。例如:个连续奇数之和。例如:

7、13=1;23=3+5;33=7+9+11。要求程序对每个输入的自然数计算并输出。要求程序对每个输入的自然数计算并输出相应的连续奇数,直到输入的自然数为相应的连续奇数,直到输入的自然数为0时止。时止。分析:分析:首先考虑输入的自然数个数不确定,可用首先考虑输入的自然数个数不确定,可用while语句语句对每一个数进行处理,在循环体内输入对每一个数进行处理,在循环体内输入n,然后找连续,然后找连续n个奇个奇数,使它们的和等于数,使它们的和等于n的立方。的立方。接下来要考虑的是连续接下来要考虑的是连续n个奇数的起始数是未知的,因此个奇数的起始数是未知的,因此需要循环测试。设变量需要循环测试。设变量k

8、为起始数(为起始数(k的初值为的初值为1),再设一),再设一个变量个变量j从从k开始循环累加连续开始循环累加连续n个个奇数,若求出的和奇数,若求出的和s等于等于n的立方,则结束测试的立方,则结束测试k的循环,从的循环,从k开始输出连续开始输出连续n个奇数,个奇数,否则否则k=k+2;继续循环测试。继续循环测试。例:习题集P71 15题8 while(1)/*该循环控制多该循环控制多个自然数个自然数*/输入一个自然数输入一个自然数n);if(n=0)break;/*当输入当输入0时,跳出循环时,跳出循环 */k=1;do /*该循环找出连续该循环找出连续n个奇数,个奇数,k是起始数是起始数*/s

9、=0;for(i=1,j=k;i=n;i+,j=j+2)s+=j;k+=2;while(s!=n*n*n);输出输出n;输出从输出从k开始的连续开始的连续n个奇数个奇数 while(1)/*该循环控制多个自然数 9三、穷举法三、穷举法 穷举法是指不重复,不遗漏地穷举所有可能情况,穷举法是指不重复,不遗漏地穷举所有可能情况,以便从中寻求满足条件的结果。以便从中寻求满足条件的结果。在穷举法编程中,主在穷举法编程中,主要使用循环语句和选择语句。循环语句用于列举所有的要使用循环语句和选择语句。循环语句用于列举所有的可能性;而选择语句判定当前的条件是否为所求的解。可能性;而选择语句判定当前的条件是否为所

10、求的解。例:习题集例:习题集P72 22题题 一个自然数的七进制表达式是一个三位数,而这个自一个自然数的七进制表达式是一个三位数,而这个自然数的九进制表示也是一个三位数,且这两个三位数的然数的九进制表示也是一个三位数,且这两个三位数的数码正好相反,编写程序,求这个自然数。数码正好相反,编写程序,求这个自然数。分析:分析:三位九进制最大为三位九进制最大为(888)(888)9 9即即(728)(728)1010,三位七进制最小,三位七进制最小为为(100)(100)7 7即即(49)(49)1010,因此要找的自然数一定在此范围内,可,因此要找的自然数一定在此范围内,可采用穷举法对该范围内的每一

11、个数都判断是否满足条件。为采用穷举法对该范围内的每一个数都判断是否满足条件。为了判断条件,要将自然数分别按九进制和七进制分解出三位了判断条件,要将自然数分别按九进制和七进制分解出三位数码,然后按题目给出的条件判断。数码,然后按题目给出的条件判断。三、穷举法10for(n=49;n=728;n+)分解出七进制的三位数分解出七进制的三位数a1,b1,c1,分解出九进制的三位数分解出九进制的三位数a2,b2,c2 if(c1=a2&b1=b2&c2=a1)输出输出n;输出输出n的的9进制三位数和进制三位数和7进制三位数进制三位数;break;for(n=49;n0;i-)/*控制单词个数控制单词个数

12、 */for(j=0;sij;j+)/*内循环完成一个单词的传送内循环完成一个单词的传送*/strk+=sij;strk+=;/*每个单词末尾加一个空格每个单词末尾加一个空格*/strk=0;/*最后给一维数组末尾加一个结束符最后给一维数组末尾加一个结束符*/原文单词倒排可这样做:15例:习题集例:习题集P98 9题题 编写程序,它能读入构成集合编写程序,它能读入构成集合A,B的两组非零整数的两组非零整数x1,x2,xm,y1,y2,yn。计算计算A与与B的交的交集集AB,再以由大到小的顺序输出,再以由大到小的顺序输出AB中的元素,中的元素,AB为空时无输出。为空时无输出。分析:分析:定义数组

13、定义数组A、B、C,A、B分别存放集合分别存放集合A和和B,C存存放放A与与B的交集。求的交集。求与与A与与B交集可用交集可用A的每一个元素与的每一个元素与 B的的各元素逐个比较,遇到相等的,就存入各元素逐个比较,遇到相等的,就存入C中。这个过程需中。这个过程需要二重循环来实现,外循环是要二重循环来实现,外循环是A的变化,内循环是的变化,内循环是B的变化。的变化。输出输出C时要先进行由大到小的排序。时要先进行由大到小的排序。例:习题集P98 9题16 输入输入a,b数组元素个数数组元素个数;输入输入a数组元素数组元素;输入输入b数组元素数组元素;k=0;循环循环(i=0m-1)循环循环(j=0

14、n-1)if(ai=bj)ck+=ai;break;if(k!=0)对对c排序;排序;输出输出c 输入a,b数组元素个数;17例:习题集例:习题集P98 16题题 编写程序对字符串按下面给定的条件进行排序,排编写程序对字符串按下面给定的条件进行排序,排序后的结果仍按行重新存入字符串中并打印出来。序后的结果仍按行重新存入字符串中并打印出来。条件:从字符串中间一分为二,左边部分按字符的条件:从字符串中间一分为二,左边部分按字符的ASCII值降序排序,右边部分按字符的值降序排序,右边部分按字符的ASCII值升序排值升序排序;排序后,左边部分与右边部分进行交换。如果原序;排序后,左边部分与右边部分进行

15、交换。如果原字符串长度为奇数,则最中间的字符不参加排序,字字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上。符仍放在原位置上。分析:分析:解题步骤如下:解题步骤如下:定义数组并输入字符串;定义数组并输入字符串;char str80;gets(str);计算字符串长度计算字符串长度n及右边部分起始位置及右边部分起始位置m;n=strlen(str);k=n/2;m=n%2=0?k:k+1;例:习题集P98 16题18 对对str0 strk-1由大到小排序;由大到小排序;对对strm strn-1由小到大排序;由小到大排序;将将str0 strk-1 与与strm strn-1交换;交换;for(i=0,j=m;ik;i+,j+)t=stri;stri=strj;strj=t;输出输出str;puts(str);对str0 strk-1由大到小排序;

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!