C语言学习教案Review.ppt
《C语言学习教案Review.ppt》由会员分享,可在线阅读,更多相关《C语言学习教案Review.ppt(49页珍藏版)》请在三一办公上搜索。
1、嵌套,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(;).,(
2、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*/*程序
3、功能:求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,c
4、hickens=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=
5、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,如果是求指定条件的奇数呢?,如果是求指定
6、条件的偶数呢?,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、递推法(归纳法),累加型
7、算法 若设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:这是个累加型算法的编程题
8、,#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、递推法(归纳法),
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 学习 教案 Review
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6503836.html