欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C语言学习教案Review.ppt

    • 资源ID:70101051       资源大小:338KB        全文页数:49页
    • 资源格式: PPT        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言学习教案Review.ppt

    第5章 循环结构ifif(expr1)(expr1)if if(expr2)(expr2)statement1statement1elseelsestatement2statement2elseelseifif(expr3)(expr3)statement3statement3elseelsestatement4statement4nestedifnestedifnestedifnestedififif(expr1)(expr1)if if(expr2)(expr2)statement1statement1elseelse statement2statement2nestedifnestedifif if(expr1)(expr1)if if(expr2)(expr2)statement1statement1 elseelsestatement2statement2nestedifnestedifif if(expr1)(expr1)statement1statement1elseelseif if(expr2)(expr2)statement2statement2elseelse statement3statement3nestedifnestedif嵌套嵌套第5章 循环结构qq if-elseif-else的结合:的结合:的结合:的结合:elseelse总是与前面最近的总是与前面最近的总是与前面最近的总是与前面最近的 else if else if 或或或或 if if 相结合相结合相结合相结合 用用用用 表示,则更加明确表示,则更加明确表示,则更加明确表示,则更加明确 嵌套嵌套if()if()if()if()if()if()else.else.else.else.else.else.第5章 循环结构asas:if(a=b)if(a=b)if(b=c)if(b=c)printf(“a=b=c”);printf(“a=b=c”);elseelseprintf(“a!=b”);printf(“a!=b”);嵌套嵌套第5章 循环结构#include#includemain()main()intx=100,a=10,b=20;intx=100,a=10,b=20;intv1=5,v2=0;intv1=5,v2=0;if(ab)if(ab)if(b!=15)if(b!=15)if(!v1)x=1;if(!v1)x=1;elseelseif(v2)x=10;if(v2)x=10;x=-1;x=-1;printf(x=%d,x);printf(x=%d,x);x=-1嵌套嵌套第5章 循环结构(1)while()(1)while()while()while().(2)do(2)dododowhile();while();.while();while();(3)for(;)(3)for(;)for(;)for(;).(4)while()(4)while()dodowhile();while();.(5)for(;)(5)for(;)while()while().(6)do(6)dofor(;)for(;).while();while();嵌套嵌套第5章 循环结构i10i10printfprintfF(0)F(0)T(!0)T(!0)i=1i=1j+j+j=1j=1j10j10T(!0)T(!0)F(0)F(0)i+i+for(i=1;i10;i+)for(i=1;i10;i+)for(j=1;j10;j+)for(j=1;j10;j+)printf(j=9)?%4dn:%4d,i*j);printf(j=9)?%4dn:%4d,i*j);outerloopouterloopinnerloopinnerloop嵌套嵌套第5章 循环结构sum=0sum=0+1=1sum=1+2=3sum=3+3=6sum=6+4=10sum=4950+100=5050累加和累乘累加和累乘第5章 循环结构n=1n=1*1=1n=1*2=2n=2*3=6n=6*4=24n=362880362880*10=36288003628800累加和累乘累加和累乘n!第5章 循环结构累加和累乘累加和累乘/*/*求求求求n n的阶乘的阶乘的阶乘的阶乘n!n!(n!=1*2*nn!=1*2*n)*/*/*/*文件名:文件名:文件名:文件名:factorial.C*/factorial.C*/*/*程序功能:求程序功能:求程序功能:求程序功能:求n!*/n!*/#include#includemain()main()inti,n;inti,n;/*/*定义累乘器定义累乘器定义累乘器定义累乘器factfact,并初始化为,并初始化为,并初始化为,并初始化为1*/1*/longfact=1;longfact=1;printf(Inputn:);printf(Inputn:);scanf(%d,&n);scanf(%d,&n);for(i=1;i=n;i+)for(i=1;i=n;i+)/*/*实现累乘实现累乘实现累乘实现累乘*/*/fact*=i;fact*=i;printf(%d!=%ldn,n,fact);printf(%d!=%ldn,n,fact);第5章 循环结构1 1 1 1、穷举法(枚举法)、穷举法(枚举法)、穷举法(枚举法)、穷举法(枚举法)“笨人之法笨人之法笨人之法笨人之法”:把所有可能的情况一一测试,筛选出符把所有可能的情况一一测试,筛选出符把所有可能的情况一一测试,筛选出符把所有可能的情况一一测试,筛选出符合条件的各种结果进行输出。合条件的各种结果进行输出。合条件的各种结果进行输出。合条件的各种结果进行输出。【例一】【例一】【例一】【例一】百元买百鸡百元买百鸡百元买百鸡百元买百鸡:用一百元钱买一百只鸡。已知公用一百元钱买一百只鸡。已知公用一百元钱买一百只鸡。已知公用一百元钱买一百只鸡。已知公鸡鸡鸡鸡5 5 5 5元元元元/只只只只,母鸡母鸡母鸡母鸡3 3 3 3元元元元/只只只只,小鸡小鸡小鸡小鸡1 1 1 1元元元元/3/3/3/3只。只。只。只。分析:分析:分析:分析:这是个不定方程这是个不定方程这是个不定方程这是个不定方程三元一次方程组问题(三三元一次方程组问题(三三元一次方程组问题(三三元一次方程组问题(三个变量,两个方程)个变量,两个方程)个变量,两个方程)个变量,两个方程)x x x xy y y yz=100z=100z=100z=100 5x5x5x5x3y3y3y3yz/3=100z/3=100z/3=100z/3=100 设公鸡为设公鸡为设公鸡为设公鸡为x x x x只,母鸡为只,母鸡为只,母鸡为只,母鸡为y y y y只,小鸡为只,小鸡为只,小鸡为只,小鸡为z z z z只。只。只。只。常用算法常用算法第5章 循环结构cocks=0,hens=25,chickens=75cocks=0,hens=25,chickens=75cocks=4,hens=18,chickens=78cocks=4,hens=18,chickens=78cocks=8,hens=11,chickens=81cocks=8,hens=11,chickens=81cocks=12,hens=4,chickens=84cocks=12,hens=4,chickens=84常用算法常用算法1 1、穷举法(枚举法)、穷举法(枚举法)、穷举法(枚举法)、穷举法(枚举法)#include#includemain()main()intx,y,z;intx,y,z;for(x=0;x=100;x+)for(x=0;x=100;x+)for(y=0;y=100;y+)for(y=0;y=100;y+)for(z=0;z=100;z+)for(z=0;z=100;z+)if(x+y+z=100&5*x+3*y+z/3.0=100)if(x+y+z=100&5*x+3*y+z/3.0=100)printf(cocks=%d,hens=%d,chickens=%dn,x,y,z);printf(cocks=%d,hens=%d,chickens=%dn,x,y,z);讨论:讨论:讨论:讨论:此为此为此为此为“最笨最笨最笨最笨”之法之法之法之法要进行要进行要进行要进行101101101=1030301101101101=1030301次次次次(100100多百次)运算。多百次)运算。多百次)运算。多百次)运算。第5章 循环结构#include#includemain()main()intx,y,z;intx,y,z;for(x=0;x=100;x+)for(x=0;x=100;x+)for(y=0;y=100;y+)for(y=0;y=100;y+)z=100-x-y;z=100-x-y;if(5*x+3*y+z/3.0=100)if(5*x+3*y+z/3.0=100)printf(“cocks=%d,hens=%d,chickens=%dn,x,y,z);printf(“cocks=%d,hens=%d,chickens=%dn,x,y,z);常用算法常用算法1 1、穷举法(枚举法)、穷举法(枚举法)、穷举法(枚举法)、穷举法(枚举法)第5章 循环结构【讨论】【讨论】【讨论】【讨论】令令令令z=100-x-y z=100-x-y 只进行只进行只进行只进行101101=10201 101101=10201 次运算次运算次运算次运算(前者的(前者的(前者的(前者的1%1%)取取取取x=19,y=33 x=19,y=33 只进行只进行只进行只进行2034=680 2034=680 次运算(次运算(次运算(次运算(6.7%6.7%)常用算法常用算法1 1、穷举法(枚举法)、穷举法(枚举法)、穷举法(枚举法)、穷举法(枚举法)第5章 循环结构 求求求求100100100100200200200200之间不能被之间不能被之间不能被之间不能被3 3 3 3整除也不能被整除也不能被整除也不能被整除也不能被7 7 7 7整除的数。整除的数。整除的数。整除的数。分析:分析:求某区间内符合某一要求的数,可用求某区间内符合某一要求的数,可用一个变量一个变量“穷举穷举”。所以可用一个独立变量。所以可用一个独立变量x,取值范围,取值范围100200。常用算法常用算法1 1、穷举法(枚举法)、穷举法(枚举法)、穷举法(枚举法)、穷举法(枚举法)第5章 循环结构for(x=100;x=200;x+)for(x=100;x=200;x+)if(x%3!=0&x%7!=0)if(x%3!=0&x%7!=0)printf(“x=%dn”,x);printf(“x=%dn”,x);如果是求指定条件的奇数呢?如果是求指定条件的奇数呢?如果是求指定条件的奇数呢?如果是求指定条件的奇数呢?如果是求指定条件的偶数呢?如果是求指定条件的偶数呢?如果是求指定条件的偶数呢?如果是求指定条件的偶数呢?x=101;x=200;x=x+2x=101;x=200;x=x+2 x=100;x=200;x=x+2x=100;x=200;x=x+2 常用算法常用算法1 1、穷举法(枚举法)、穷举法(枚举法)、穷举法(枚举法)、穷举法(枚举法)第5章 循环结构常用算法常用算法1 1、穷举法(枚举法)、穷举法(枚举法)、穷举法(枚举法)、穷举法(枚举法)判断一个数是否素数判断一个数是否素数判断一个数是否素数判断一个数是否素数?#include#include#include#includemain()main()intm,k,i;intm,k,i;clrscr();clrscr();printf(x=);printf(x=);scanf(%d,&m);scanf(%d,&m);for(i=2;im-1;i+)for(i=2;im-1;i+)if(if(m%i=0m%i=0)printf(%disnotaprimenumbern,m);printf(%disnotaprimenumbern,m);exit(0);exit(0);printf(i=%d,%disaprimenumbern,i,m);printf(i=%d,%disaprimenumbern,i,m);把把把把im-1im-1改为改为改为改为isqrt(m-1)isqrt(m-1)第5章 循环结构 “智人之法智人之法智人之法智人之法”:通过分析归纳,找出从变量通过分析归纳,找出从变量通过分析归纳,找出从变量通过分析归纳,找出从变量旧值出发求新值的规律。旧值出发求新值的规律。旧值出发求新值的规律。旧值出发求新值的规律。编程求编程求编程求编程求i=1+2+3+4+99+100 (i=0i=1+2+3+4+99+100 (i=0100)100)常用算法常用算法2 2、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)第5章 循环结构常用算法常用算法2 2、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)第5章 循环结构【累加型】类型诸如 +求其前n项之和的编程题。常用算法常用算法2 2、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)第5章 循环结构累加型算法累加型算法累加型算法累加型算法若设若设若设若设i i为循环变量,为循环变量,为循环变量,为循环变量,s s为前为前为前为前n n项累加之和,则程序的项累加之和,则程序的项累加之和,则程序的项累加之和,则程序的基本结构为:基本结构为:基本结构为:基本结构为:s=0;s=0;for(i=1;i=n;i+)for(i=1;i=n;i+)s=s+s=s+;常用算法常用算法2 2、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)第5章 循环结构 编程求编程求编程求编程求1 11/2+1/31/2+1/31/4+1/51/4+1/5 +1/99+1/991/1001/100n n分母为奇数时,相加分母为奇数时,相加分母为奇数时,相加分母为奇数时,相加n n分母为偶数时,相减分母为偶数时,相减分母为偶数时,相减分母为偶数时,相减方法方法方法方法1 1:从变化规律分析从变化规律分析从变化规律分析从变化规律分析常用算法常用算法2 2、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)第5章 循环结构#include#includemain()main()inti;inti;floats=0;floats=0;for(i=1;i=100;i+)for(i=1;i=100;i+)if(i%2)if(i%2)s=s+1/i;s=s+1/i;elseelses=s-1/i;s=s-1/i;printf(Sum=%fn,s);printf(Sum=%fn,s);运行结果:运行结果:运行结果:运行结果:Sum=1.000000Sum=1.000000错在哪里?错在哪里?错在哪里?错在哪里?常用算法常用算法2 2、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)第5章 循环结构方法方法方法方法2 2:这是个累加型算法的编程题这是个累加型算法的编程题这是个累加型算法的编程题这是个累加型算法的编程题#include#include#include#includemain()main()inti;inti;floats=0;floats=0;for(i=1;i=100;i+)for(i=1;i=100;i+)s=s+s=s+pow(-1,i+1)pow(-1,i+1)/i;/i;printf(Sum=%fn,s);printf(Sum=%fn,s);累加型算法累加型算法累加型算法累加型算法程序基本结构为:程序基本结构为:程序基本结构为:程序基本结构为:s=0;s=0;for(i=1;i=n;i+)for(i=1;i=n;i+)s=s+;s=s+;运行结果:运行结果:运行结果:运行结果:Sum=0.688172 Sum=0.688172 常用算法常用算法2 2、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)第5章 循环结构#include#includemain()main()inti,k=1;inti,k=1;floats=0;floats=0;for(i=1;i=100;i+)for(i=1;i=100;i+)s=s+k/i;s=s+k/i;k=-k;k=-k;printf(Sum=%fn,s);printf(Sum=%fn,s);错在哪里?错在哪里?错在哪里?错在哪里?(如何检查程序错误?如何检查程序错误?如何检查程序错误?如何检查程序错误?)运行结果:运行结果:运行结果:运行结果:Sum=1.000000 Sum=1.000000 常用算法常用算法2 2、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)第5章 循环结构编程求编程求编程求编程求n!n!分析分析分析分析 i=1 i=1 S0S0=1=1=S0S0 (初值初值初值初值)i=1 i=1 S1S1=01=01=S0S011 i=2 i=2 S2S2=12=12=S1S122 i=3 i=3 S3S3=123=123=S2S233 i=4 i=4 S4S4=1234=1234=S3S344 i=n i=n SnSn=1 234n=1 234n=Sn-1Sn-1nn常用算法常用算法2 2、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)第5章 循环结构常用算法常用算法2 2、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)第5章 循环结构【阶乘型】类型诸如【阶乘型】类型诸如【阶乘型】类型诸如【阶乘型】类型诸如 求其前求其前求其前求其前n n项之积的编程题。项之积的编程题。项之积的编程题。项之积的编程题。阶乘型算法阶乘型算法阶乘型算法阶乘型算法若设若设若设若设i i为循环变量,为循环变量,为循环变量,为循环变量,s s为前为前为前为前n n项相乘之积,则程序的基本结构项相乘之积,则程序的基本结构项相乘之积,则程序的基本结构项相乘之积,则程序的基本结构为:为:为:为:s=1;s=1;for(i=1;i=n;i+)for(i=1;i=n;i+)s=ss=s*;常用算法常用算法2 2、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)第5章 循环结构编程求编程求编程求编程求n!=1!+2!+3!n!=1!+2!+3!+n!+n!(n n由键盘输入)由键盘输入)由键盘输入)由键盘输入)n n 外循环为累加型外循环为累加型外循环为累加型外循环为累加型n n 内循环为阶乘型内循环为阶乘型内循环为阶乘型内循环为阶乘型方法方法方法方法1 1:从变化规律分析从变化规律分析从变化规律分析从变化规律分析常用算法常用算法2 2、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)第5章 循环结构n n在同一个循环中在同一个循环中在同一个循环中在同一个循环中 先阶乘,后累加先阶乘,后累加先阶乘,后累加先阶乘,后累加方法方法方法方法2 2:通过单循环实现通过单循环实现通过单循环实现通过单循环实现#include#includemain()main()inti,n;inti,n;floats,s1;floats,s1;printf(Inputn=);printf(Inputn=);scanf(%d,&n);scanf(%d,&n);s=0;s=0;s1=1;s1=1;for(i=1;i=n;i+)for(i=1;i=n;i+)s1=s1*i;s1=s1*i;s=s+s1;s=s+s1;printf(Sum=%.0fn,s);printf(Sum=%.0fn,s);常用算法常用算法2 2、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)第5章 循环结构兔子繁殖问题(兔子繁殖问题(兔子繁殖问题(兔子繁殖问题(斐波那契斐波那契斐波那契斐波那契数列问题)数列问题)数列问题)数列问题)著名意大利数学家斐波那契(著名意大利数学家斐波那契(著名意大利数学家斐波那契(著名意大利数学家斐波那契(FibonacciFibonacciFibonacciFibonacci)1202120212021202年提出年提出年提出年提出一个有趣的问题。某人想知道一年内一对兔子可以生几对兔一个有趣的问题。某人想知道一年内一对兔子可以生几对兔一个有趣的问题。某人想知道一年内一对兔子可以生几对兔一个有趣的问题。某人想知道一年内一对兔子可以生几对兔子。他筑了一道围墙,把一对大兔关在其中。已知每对大兔子。他筑了一道围墙,把一对大兔关在其中。已知每对大兔子。他筑了一道围墙,把一对大兔关在其中。已知每对大兔子。他筑了一道围墙,把一对大兔关在其中。已知每对大兔每个月可以生一对小兔,而每对小兔出生后第三个月即可成每个月可以生一对小兔,而每对小兔出生后第三个月即可成每个月可以生一对小兔,而每对小兔出生后第三个月即可成每个月可以生一对小兔,而每对小兔出生后第三个月即可成为为为为“大兔大兔大兔大兔”再生小兔。问一对小兔一年能繁殖几对小兔?再生小兔。问一对小兔一年能繁殖几对小兔?再生小兔。问一对小兔一年能繁殖几对小兔?再生小兔。问一对小兔一年能繁殖几对小兔?常用算法常用算法2 2、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)第5章 循环结构n n分析:分析:分析:分析:表示大兔,表示大兔,表示大兔,表示大兔,表示小兔表示小兔表示小兔表示小兔常用算法常用算法2 2、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)第5章 循环结构常用算法常用算法2 2、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)由分析可以推出,每月新增兔子数由分析可以推出,每月新增兔子数由分析可以推出,每月新增兔子数由分析可以推出,每月新增兔子数Fn=1,1,2,3,5,8,13,21,34,Fn=1,1,2,3,5,8,13,21,34,(斐波那契数列)(斐波那契数列)(斐波那契数列)(斐波那契数列)第5章 循环结构常用算法常用算法2 2、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)#include#includemain()main()longf,f1,f2;longf,f1,f2;inti;inti;f1=f2=1;f1=f2=1;printf(%10ld%10ld,printf(%10ld%10ld,f1,f2);f1,f2);/*/*产生第产生第产生第产生第3 3到到到到1212项项项项*/*/for(i=3;i=12;i+)for(i=3;i=12;i+)/*/*递推出第递推出第递推出第递推出第i i项项项项*/*/f=f1+f2;f=f1+f2;printf(%10ld,f);printf(%10ld,f);/*/*每行输出每行输出每行输出每行输出4 4个数个数个数个数*/*/if(i%4=0)printf(n);if(i%4=0)printf(n);/*/*为下一步递推做准备为下一步递推做准备为下一步递推做准备为下一步递推做准备*/*/f1=f2;f1=f2;f2=f;f2=f;第5章 循环结构常用算法常用算法2 2、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)由分析可以推出,每月新增兔子数由分析可以推出,每月新增兔子数由分析可以推出,每月新增兔子数由分析可以推出,每月新增兔子数Fn=1,1,2,3,5,8,13,21,34,Fn=1,1,2,3,5,8,13,21,34,(斐波那契数列)(斐波那契数列)(斐波那契数列)(斐波那契数列)第5章 循环结构常用算法常用算法2 2、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)当当当当f1+f2ff1+f2f时,时,时,时,f1f1对下次递推已无作用,所以用对下次递推已无作用,所以用对下次递推已无作用,所以用对下次递推已无作用,所以用f1f1存放存放存放存放当前递推结果是很自然的。下次递推公式为当前递推结果是很自然的。下次递推公式为当前递推结果是很自然的。下次递推公式为当前递推结果是很自然的。下次递推公式为f2+f1f2f2+f1f2,注,注,注,注意,此时意,此时意,此时意,此时f1f1是上次的递推结果,同样,本次递推后,是上次的递推结果,同样,本次递推后,是上次的递推结果,同样,本次递推后,是上次的递推结果,同样,本次递推后,f2f2已经已经已经已经无用了,故用无用了,故用无用了,故用无用了,故用f2f2存放当前递推结果。存放当前递推结果。存放当前递推结果。存放当前递推结果。例如,例如,例如,例如,f1=f2=1f1=f2=1f1=f1+f2f1=1+1=2f1=f1+f2f1=1+1=2f2=f2+f1f2=1+2=3f2=f2+f1f2=1+2=3f1=f1+f2f1=2+3=5f1=f1+f2f1=2+3=5第5章 循环结构常用算法常用算法2 2、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)这样,循环体中可用如下语句进行递推:这样,循环体中可用如下语句进行递推:这样,循环体中可用如下语句进行递推:这样,循环体中可用如下语句进行递推:f1=f1+f2f1=f1+f2;f2=f2+f1f2=f2+f1;一次可产生两项。循环次数减少一半。下面是改一次可产生两项。循环次数减少一半。下面是改一次可产生两项。循环次数减少一半。下面是改一次可产生两项。循环次数减少一半。下面是改进后的程序:进后的程序:进后的程序:进后的程序:第5章 循环结构常用算法常用算法2 2、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)#include#includemain()main()longf,f1,f2;longf,f1,f2;inti;inti;f1=f2=1;f1=f2=1;printf(%10ld%10ld,printf(%10ld%10ld,f1,f2);f1,f2);/*/*产生第产生第产生第产生第3 3到到到到1212项项项项*/*/for(i=2;i=6;i+)for(i=2;i=6;i+)/*/*递推出递推出递推出递推出2 2项项项项*/*/f1=f1+f2;f1=f1+f2;f2=f2+f1;f2=f2+f1;printf(%10ld%10ld,printf(%10ld%10ld,f1,f2);f1,f2);/*/*每行输出每行输出每行输出每行输出4 4个数个数个数个数*/*/if(i%2=0)if(i%2=0)printf(n);printf(n);第5章 循环结构常用算法常用算法2 2、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)abf(x)a+3ha+h求定积分求定积分将将a-b进行进行n等分,等分,区间段为区间段为(a-b)/n,而两条直线之间构成而两条直线之间构成近似梯形,近似梯形,f(x)在在a与与b之间的定积之间的定积分的值就是各梯形的面分的值就是各梯形的面积之和。积之和。第5章 循环结构求面积公式求面积公式求面积公式求面积公式=S=S1 1+S+S2 2+S+S3 3+S+Sn n=h/2*(f(a)+f(a+h)+h/2*(f(a+h)+f(a+2h)+=h/2*(f(a)+f(a+h)+h/2*(f(a+h)+f(a+2h)+h/2*(f(a+(n-1)h)+f(b)+h/2*(f(a+(n-1)h)+f(b)=h/2(f(a)+2f(a+h)+2f(a+2h)+=h/2(f(a)+2f(a+h)+2f(a+2h)+2f(a+(n-1)h)+f(b)+2f(a+(n-1)h)+f(b)=h/2(f(a)+f(b)+2(f(a+h)+f(a+2h)+f(a+(n-1)h)=h/2(f(a)+f(b)+2(f(a+h)+f(a+2h)+f(a+(n-1)h)=h(f(a)+f(b)/2+f(a+h)+f(a+2h)+h(f(a)+f(b)/2+f(a+h)+f(a+2h)+f(a+(n-1)h)+f(a+(n-1)h)常用算法常用算法2 2、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)第5章 循环结构#include#includemain()main()intn,i;intn,i;floatS,h,a,b;floatS,h,a,b;scanf(%f,%f,%d,&a,&b,&n);scanf(%f,%f,%d,&a,&b,&n);h=(b-a)/n;h=(b-a)/n;S=(sin(a)+sin(b)/2;S=(sin(a)+sin(b)/2;for(i=1;in;+i)for(i=1;in;+i)S=S+sin(a+i*h);S=S+sin(a+i*h);S=S*h;S=S*h;printf(S=%fn,S);printf(S=%fn,S);常用算法常用算法2 2、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)、递推法(归纳法)第5章 循环结构常用算法常用算法3 3、迭代法、迭代法、迭代法、迭代法牛顿迭代法解一元高次方程牛顿迭代法解一元高次方程二分法解一元高次方程二分法解一元高次方程求方程求方程f(x)=2x3-4x2+3x-6=0在在1.5附近的附近的一个根。一个根。第5章 循环结构牛顿迭代法牛顿迭代法牛顿迭代法牛顿迭代法X X2 2X X3 3X X1 1XY过过过过x1x1的的的的f(x)f(x)切线方程为切线方程为切线方程为切线方程为Y=X-XY=X-X1 1+F(X+F(X1 1)/F(X)/F(X1 1)X X2 2=X=X1 1-F(X-F(X1 1)/F(X)/F(X1 1)X Xn n=X=Xn-1n-1-F(X-F(Xn-1n-1)/F(X)/F(Xn-1n-1)当当当当XXn nX Xn-1n-1时时时时X Xn n为方程为方程为方程为方程F(x)F(x)在在在在X X1 1附近附近附近附近的一个根。的一个根。的一个根。的一个根。常用算法常用算法3 3、迭代法、迭代法、迭代法、迭代法第5章 循环结构常用算法常用算法3 3、迭代法、迭代法、迭代法、迭代法#include#include#include#includemain()main()floatx0,x1,d;floatx0,x1,d;x0=1.5;x0=1.5;d=(2*x0-4)*x0+3)*x0-6)/(6*x0-8)*x0+3);d=(2*x0-4)*x0+3)*x0-6)/(6*x0-8)*x0+3);x1=x0-d;x1=x0-d;while(fabs(d)1e-6)while(fabs(d)1e-6)x0=x1;x0=x1;d=(2*x0-4)*x0+3)*x0-6)/(6*x0-8)*x0+3);d=(2*x0-4)*x0+3)*x0-6)/(6*x0-8)*x0+3);x1=x0-d;x1=x0-d;printf(x1=%fn,x1);printf(x1=%fn,x1);牛顿迭代法牛顿迭代法牛顿迭代法牛顿迭代法第5章 循环结构任意取两点任意取两点任意取两点任意取两点x1x1和和和和x2x2,使,使,使,使f(x1)f(x1)和和和和f(x2)f(x2)符号相反。符号相反。符号相反。符号相反。x1x2x1x1和和和和x2x2的中值为的中值为的中值为的中值为x x。x如如如如f(x)f(x)与与与与f(x2)f(x2)同符号,则同符号,则同符号,则同符号,则用用用用x x代替代替代替代替x2x2,否则代替,否则代替,否则代替,否则代替x1x1。不断逼近,当不断逼近,当不断逼近,当不断逼近,当x1-x2x1-x2时,时,时,时,x x为为为为f(x)f(x)的一个的一个的一个的一个根。根。根。根。常用算法常用算法3 3、迭代法、迭代法、迭代法、迭代法二分法二分法二分法二分法第5章 循环结构#include#include#include#includemain()main()floatx1,x2,x,f1,f2,f;floatx1,x2,x,f1,f2,f;dodoscanf(%f%f,&x1,&x2);scanf(%f%f,&x1,&x2);f1=(2*x1-4)*x1+3)*x1-6;f1=(2*x1-4)*x1+3)*x1-6;f2=(2*x2-4)*x2+3)*x2-6;f2=(2*x2-4)*x2+3)*x2-6;while(f1*f20);while(f1*f20);dodox=(x1+x2)/2;x=(x1+x2)/2;f=(2*x-4)*x+3)*x-6;f=(2*x-4)*x+3)*x-6;if(f*f10)if(f*f10)x1=x;x1=x;f1=f;f1=f;elseelsex2=x;x2=x;f2=f;f2=f;while(fabs(x1-x2)=1e-6);while(fabs(x1-x2)=1e-6);printf(x=%fn,x);printf(x=%fn,x);常用算法常用算法3 3、迭代法、迭代法、迭代法、迭代法二分法二分法二分法二分法第5章 循环结构算法算法1算法算法算法算法2 2 用从用从1 1到到n n的每一个数去除的每一个数去除m m和和n n,最后,最后能同时整除能同时整除m m和和n n的数即是最大公约数。的数即是最大公约数。用从用从用从用从n n n n到到到到1 1 1 1的每一个数去除的每一个数去除的每一个数去除的每一个数去除m m m m和和和和n n n n,第一,第一,第一,第一个能同时整除个能同时整除个能同时整除个能同时整除m m m m和和和和n n n n的数即是最大公约数。的数即是最大公约数。的数即是最大公约数。的数即是最大公约数。求任意两个数求任意两个数求任意两个数求任意两个数m mm m、n(mn)n(mn)n(mn)n(mn)的最大公约数。的最大公约数。的最大公约数。的最大公约数。常用算法常用算法4 4、求最大公约数、求最大公约数、求最大公约数、求最大公约数第5章 循环结构算法算法3:辗转相除法:辗转相除法B:B:当当P=0 P=0 则则 n n 为最大公约数为最大公约数否则否则:A:m%n pA:m%n pC:m nC:m n,n pn p,转,转A A。常用算法常用算法4 4、求最大公约数、求最大公约数、求最大公约数、求最大公约数第5章 循环结构求求2828和和1616的最大公约数。的最大公约数。28%16 28%16 余余 12 1216%12 16%12 余余 4 412%4 12%4 余余 0 04 4为最大公约数。为最大公约数。算法算法3:辗转相除法:辗转相除法常用算法常用算法4 4、求最大公约数、求最大公约数、求最大公约数、求最大公约数第5章 循环结构辗转相除法辗转相除法常用算法常用算法4 4、求最大公约数、求最大公约数、求最大公约数、求最大公约数输入输入m,nMod(m,n)Rnm,Rnmod(m,n)R输出输出n结束结束开始开始noWhileR0yes

    注意事项

    本文(C语言学习教案Review.ppt)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开