欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    C语言学习教案Review.ppt

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

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

    C语言学习教案Review.ppt

    嵌套,if-else的结合:else总是与前面最近的 else if 或 if 相结合,用 表示,则更加明确,嵌套,as:if(a=b)if(b=c)printf(“a=b=c”);else printf(“a!=b”);,嵌套,#include main()int x=100,a=10,b=20;int v1=5,v2=0;if(a b)if(b!=15)if(!v1)x=1;else if(v2)x=10;x=-1;printf(x=%d,x);,x=-1,嵌套,(1)while()while().,(2)do do while();.while();,(3)for(;)for(;).,(4)while()do while();.,(5)for(;)while().,(6)do for(;).while();,嵌套,for(i=1;i10;i+)for(j=1;j10;j+)printf(j=9)?%4dn:%4d,i*j);,嵌套,sum=0sum=0+1=1sum=1+2=3sum=3+3=6sum=6+4=10sum=4950+100=5050,累加和累乘,n=1n=1*1=1n=1*2=2n=2*3=6n=6*4=24n=362880*10=3628800,累加和累乘,n!,累加和累乘,/*求n的阶乘n!(n!=1*2*n)*/*文件名:factorial.C*/*程序功能:求n!*/#include main()int i,n;/*定义累乘器fact,并初始化为1*/long fact=1;printf(Input n:);scanf(%d,1、穷举法(枚举法)“笨人之法”:把所有可能的情况一一测试,筛选出符合条件的各种结果进行输出。【例一】百元买百鸡:用一百元钱买一百只鸡。已知公鸡5元/只,母鸡3元/只,小鸡1元/3只。分析:这是个不定方程三元一次方程组问题(三个变量,两个方程)xyz=100 5x3yz/3=100 设公鸡为x只,母鸡为y只,小鸡为z只。,常用算法,cocks=0,hens=25,chickens=75cocks=4,hens=18,chickens=78cocks=8,hens=11,chickens=81cocks=12,hens=4,chickens=84,常用算法,1、穷举法(枚举法),#include main()int x,y,z;for(x=0;x=100;x+)for(y=0;y=100;y+)for(z=0;z=100;z+)if(x+y+z=100,讨论:此为“最笨”之法要进行101101101=1030301次(100多百次)运算。,#include main()int x,y,z;for(x=0;x=100;x+)for(y=0;y=100;y+)z=100-x-y;if(5*x+3*y+z/3.0=100)printf(“cocks=%d,hens=%d,chickens=%dn,x,y,z);,常用算法,1、穷举法(枚举法),【讨论】令z=100-x-y 只进行101101=10201 次运算(前者的1%),取x=19,y=33 只进行2034=680 次运算(6.7%),常用算法,1、穷举法(枚举法),求100200之间不能被3整除也不能被7整除的数。,分析:求某区间内符合某一要求的数,可用一个变量“穷举”。所以可用一个独立变量x,取值范围100200。,常用算法,1、穷举法(枚举法),for(x=100;x=200;x+)if(x%3!=0,如果是求指定条件的奇数呢?,如果是求指定条件的偶数呢?,x=101;x=200;x=x+2,x=100;x=200;x=x+2,常用算法,1、穷举法(枚举法),常用算法,1、穷举法(枚举法),判断一个数是否素数?,#include#include main()int m,k,i;clrscr();printf(x=);scanf(%d,把im-1改为isqrt(m-1),“智人之法”:通过分析归纳,找出从变量旧值出发求新值的规律。,编程求i=1+2+3+4+99+100(i=0100),常用算法,2、递推法(归纳法),常用算法,2、递推法(归纳法),【累加型】类型诸如+求其前n项之和的编程题。,常用算法,2、递推法(归纳法),累加型算法 若设i为循环变量,s为前n项累加之和,则程序的基本结构为:s=0;for(i=1;i=n;i+)s=s+;,常用算法,2、递推法(归纳法),编程求11/2+1/31/4+1/5+1/991/100,分母为奇数时,相加分母为偶数时,相减,方法1:从变化规律分析,常用算法,2、递推法(归纳法),#include main()int i;float s=0;for(i=1;i=100;i+)if(i%2)s=s+1/i;else s=s-1/i;printf(Sum=%fn,s);,运行结果:Sum=1.000000,错在哪里?,常用算法,2、递推法(归纳法),方法2:这是个累加型算法的编程题,#include#includemain()int i;float s=0;for(i=1;i=100;i+)s=s+pow(-1,i+1)/i;printf(Sum=%fn,s);,累加型算法程序基本结构为:s=0;for(i=1;i=n;i+)s=s+;,运行结果:Sum=0.688172,常用算法,2、递推法(归纳法),#include main()int i,k=1;float s=0;for(i=1;i=100;i+)s=s+k/i;k=-k;printf(Sum=%fn,s);,错在哪里?(如何检查程序错误?),运行结果:Sum=1.000000,常用算法,2、递推法(归纳法),编程求n!,分析 i=1 S0=1=S0(初值)i=1 S1=01=S01 i=2 S2=12=S12 i=3 S3=123=S23 i=4 S4=1234=S34 i=n Sn=1 234n=Sn-1n,常用算法,2、递推法(归纳法),常用算法,2、递推法(归纳法),【阶乘型】类型诸如 求其前n项之积的编程题。,阶乘型算法 若设i为循环变量,s为前n项相乘之积,则程序的基本结构为:s=1;for(i=1;i=n;i+)s=s*;,常用算法,2、递推法(归纳法),编程求n!=1!+2!+3!+n!(n由键盘输入),外循环为累加型 内循环为阶乘型,方法1:从变化规律分析,常用算法,2、递推法(归纳法),在同一个循环中 先阶乘,后累加,方法2:通过单循环实现,#include main()int i,n;float s,s1;printf(Input n=);scanf(%d,常用算法,2、递推法(归纳法),兔子繁殖问题(斐波那契数列问题)著名意大利数学家斐波那契(Fibonacci)1202年提出一个有趣的问题。某人想知道一年内一对兔子可以生几对兔子。他筑了一道围墙,把一对大兔关在其中。已知每对大兔每个月可以生一对小兔,而每对小兔出生后第三个月即可成为“大兔”再生小兔。问一对小兔一年能繁殖几对小兔?,常用算法,2、递推法(归纳法),分析:表示大兔,表示小兔,常用算法,2、递推法(归纳法),常用算法,2、递推法(归纳法),由分析可以推出,每月新增兔子数Fn=1,1,2,3,5,8,13,21,34,(斐波那契数列),常用算法,2、递推法(归纳法),#include main()long f,f1,f2;int i;f1=f2=1;printf(%10ld%10ld,f1,f2);,/*产生第3到12项*/for(i=3;i=12;i+)/*递推出第i项*/f=f1+f2;printf(%10ld,f);/*每行输出4个数*/if(i%4=0)printf(n);/*为下一步递推做准备*/f1=f2;f2=f;,常用算法,2、递推法(归纳法),由分析可以推出,每月新增兔子数Fn=1,1,2,3,5,8,13,21,34,(斐波那契数列),常用算法,2、递推法(归纳法),当f1+f2 f时,f1对下次递推已无作用,所以用f1存放当前递推结果是很自然的。下次递推公式为f2+f1 f2,注意,此时f1是上次的递推结果,同样,本次递推后,f2已经无用了,故用f2存放当前递推结果。例如,f1=f2=1f1=f1+f2 f1=1+1=2f2=f2+f1 f2=1+2=3f1=f1+f2 f1=2+3=5,常用算法,2、递推法(归纳法),这样,循环体中可用如下语句进行递推:f1=f1+f2;f2=f2+f1;一次可产生两项。循环次数减少一半。下面是改进后的程序:,常用算法,2、递推法(归纳法),#include main()long f,f1,f2;int i;f1=f2=1;printf(%10ld%10ld,f1,f2);,/*产生第3到12项*/for(i=2;i=6;i+)/*递推出2项*/f1=f1+f2;f2=f2+f1;printf(%10ld%10ld,f1,f2);/*每行输出4个数*/if(i%2=0)printf(n);,常用算法,2、递推法(归纳法),a,b,f(x),a+3h,a+h,求定积分,将a-b进行n等分,区间段为(a-b)/n,而两条直线之间构成近似梯形,,f(x)在a与b之间的定积分的值就是各梯形的面积之和。,求面积公式,=S1+S2+S3+Sn=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)+2f(a+h)+2f(a+2h)+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(f(a)+f(b)/2+f(a+h)+f(a+2h)+f(a+(n-1)h),常用算法,2、递推法(归纳法),#include main()int n,i;float S,h,a,b;scanf(%f,%f,%d,常用算法,2、递推法(归纳法),常用算法,3、迭代法,牛顿迭代法解一元高次方程二分法解一元高次方程,求方程f(x)=2x3-4x2+3x-6=0在1.5附近的一个根。,牛顿迭代法,X2,X3,X1,X,Y,过x1的f(x)切线方程为Y=X-X1+F(X1)/F(X1)X2=X1-F(X1)/F(X1)Xn=Xn-1-F(Xn-1)/F(Xn-1)当 XnXn-1 时Xn为方程F(x)在X1附近的一个根。,常用算法,3、迭代法,常用算法,3、迭代法,#include#include main()float x0,x1,d;x0=1.5;d=(2*x0-4)*x0+3)*x0-6)/(6*x0-8)*x0+3);x1=x0-d;while(fabs(d)1e-6)x0=x1;d=(2*x0-4)*x0+3)*x0-6)/(6*x0-8)*x0+3);x1=x0-d;printf(x1=%fn,x1);,牛顿迭代法,任意取两点x1和x2,使f(x1)和f(x2)符号相反。,x1,x2,x1和x2的中值为x。,x,如f(x)与f(x2)同符号,则用x代替x2,否则代替x1。,不断逼近,当x1-x2时,x为f(x)的一个根。,常用算法,3、迭代法,二分法,#include#include main()float x1,x2,x,f1,f2,f;do scanf(%f%f,do x=(x1+x2)/2;f=(2*x-4)*x+3)*x-6;if(f*f1 0)x1=x;f1=f;else x2=x;f2=f;while(fabs(x1-x2)=1e-6);printf(x=%fn,x);,常用算法,3、迭代法,二分法,算法1,算法2,用从1到n的每一个数去除m和n,最后能同时整除m和n的数即是最大公约数。,用从n到1的每一个数去除m和n,第一个能同时整除m和n的数即是最大公约数。,求任意两个数m、n(mn)的最大公约数。,常用算法,4、求最大公约数,算法3:辗转相除法,常用算法,4、求最大公约数,求28和16的最大公约数。,28%16 余 12,16%12 余 4,12%4 余 0,4为最大公约数。,算法3:辗转相除法,常用算法,4、求最大公约数,辗转相除法,常用算法,4、求最大公约数,

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开