c分支和循环案例分析.ppt

上传人:本田雅阁 文档编号:2037500 上传时间:2019-02-07 格式:PPT 页数:39 大小:298.01KB
返回 下载 相关 举报
c分支和循环案例分析.ppt_第1页
第1页 / 共39页
c分支和循环案例分析.ppt_第2页
第2页 / 共39页
c分支和循环案例分析.ppt_第3页
第3页 / 共39页
亲,该文档总共39页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《c分支和循环案例分析.ppt》由会员分享,可在线阅读,更多相关《c分支和循环案例分析.ppt(39页珍藏版)》请在三一文库上搜索。

1、高级语言程序设计C 流程控制,上海理工大学 计算机基础教研室 2010年11月,分支案例分析,案例分析,分支程序设计,简单分支 双分支 多分支,简单分支程序设计,求绝对值 显示三个数中的奇数 三数中取极值,main() int x,y; printf(“请输入一个数n”); scanf(“%d”, ,求绝对值,main() int x,y,z; printf(“input three numbersn”); scanf(“%d%d%d”, ,显示三个数中的奇数,三数中取极值,main() int a,b,c,max; printf (“please input three numbers.n“

2、); scanf (“%d%d%d“, ,双分支程序设计,两数的比较 判断一数能否被另一数整除,两数的比较,main() int x,y; printf (“please input x,y.n“); scanf (“%d%d“, ,判断一数能否被另一数整除,main() int x,y; printf (“please input x,y.n“); scanf (“%d%d“, ,多分支程序设计,分段函数求解 一元二次方程求解 显示学生成绩与等级,分段函数求解,main() int y; float x; printf(“ input x:n”); scanf(“%f”, ,思考:如何计算个

3、人所得税,级数 税前收入 税率(%) 1 不超过500 5 2 超过5002000 10 3 超过20005000 15 4 超过500020000 20 5 超过20000 25,一元二次方程求解,#include “math.h” main() float a,b,c,a2,x1,x2; printf(“输入系数a,b,cn”); scanf(“%f%f%f”, printf(“root1=%f-%fin”,x1,x2 ,显示学生成绩与等级,main() float score; int num,i=0; printf(“please input the total students.n“

4、); scanf (“%d“, ,switch (int)(score/10) case 10 : case 9 : printf(“%d is grate A”,score);break; case 8 : printf(“%d is grate B”,score);break; case 7 : printf(“%d is grate C”,score);break; case 6 : printf(“%d is grate D”,score);break; case 5 :case 4 :case 3 :case 2 :case 1 : case 0 : printf(“%d is fa

5、il”,score); i=i+1; ,照猫画虎,1.输入三角形的三条边,若构成直角三角形,则输出相应信息。 2.一个5位数,判断它是不是回文树.即12321是回文数,个位与万位相同,十位与千位相同。 3.请输入星期几的第一个字母来判断是星期几,如果第一个字母一样,则继续判断第二个字母。,课外作业(思考),1.和积计算 求和:s=1*2+2*3+99*100,3.求特定数判断一数能否被另一数整除 求从键盘任意输入的两个整数的最大公约数与最小公倍数 水仙花数:三位数的各位数字的立方和等于该三位数即为水仙花数,求出所有水仙花数。,2.素数探求 打印输出100200之间的素数。 质因数分解:输入自然

6、数n,将其表示为质因数从小到大顺序连乘形式。如:90=2*3*3*5,4.不定方程求解一元二次方程求解 中国古代数学家张丘建在他的算经中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?,5.利用迭代公式求值 用迭代法求某个数a的平方根。 已知求平方根的迭代公式为:,循环案例分析,1.和积计算,求和:s=1*2+2*3+99*100,main() long I,s; s=0; for (i=1;i=99;i+) s+=i*(i+1); printf(“1*2+2*3+99*100 =%ldn“,s); ,问题变通1:求s= 1*2+

7、2*3+n*(n+1) 2.求和:s=1*3+3*5+(2n-1)*(2n+1),累加和:,1.和积计算,求n!=1*2*3*n,main() int I,n; long t; scanf(“%d”, ,问题变通1:求s= 1+1/1!+1/2!+1/3!+1/n! 问题引申:求阶乘和数: 一个正整数如果等于组成它的各位数字的阶乘之和,该正整数称为阶乘和数.,阶乘计算:,2.素数探求,打印输出100200之间的素数。,main() int i,j; for(i=100;ii-1) printf(“%5d“,i); ,探求区间素数:,思考:如何改进可提高程序的判别效率?,2.素数探求,输入自然数

8、n,将其表示为质因数从小到大顺序连乘形式。如:90=2*3*3*5,#include main() long n,k, t; scanf(“%ld”, ,质因数分解:,3.求特定数,求从键盘任意输入的两个整数的最大公约数与最小公倍数,main() int a,b,temp,k; printf(“Input a ,最大公约数与最小公倍数:,main() int a,b,t; printf(“Input a ,3.求特定数,三位数的各位数字的立方和等于该三位数即为水仙花数,求出所有水仙花数。,main() int i,a,b,c; for(i=100;i=999;i+) a=i/100; b=(i

9、/10)%10; c=i%10; if(i=a*a*a+b*b*b+c*c*c) printf(“%d”,i); ,水仙花数:,main() int i,j,k,n; for(i=1;i=9;i+) for(j=0;j=9;j+) for(k=0;k=9;k+) n=i*100+j*10+k; if(n=i*i*i+j*j*j+k*k*k) printf(“%d”,n); ,1.有100克的药需用天平秤量,现在砝码只有1克、2克和5克共3种,问要求加的砝码总数为30个,有几种不同的加法?,# include main( ) int i,j,k,sum; sum=0; for (i=0;i30;

10、i+) for(j=0;j30-i;j+) k=30-i-j; if (i+2*j+5*k=100) sum=sum+1; printf(“one result:%2d,%2d,%2dn“,i,j,k); printf(“sum=%d“,sum); ,4.不定方程求解,1.中国古代数学家张丘建在他的算经中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?,题目分析与算法设计 设鸡翁、鸡母、鸡雏的个数分别为x,y,z,题意给定共100钱要买百鸡,若全买公鸡最多买20只,显然x的值在020之间;同理,y的取值范围在033之间,可得到下面

11、的不定方程: 5x+3y+z/3=100 x+y+z=100 所以此问题可归结为求这个不定方程的整数解。,4.不定方程求解,#include void main() int x,y,z,j=0; printf(“下面程序是百钱买百鸡.n“); for(x=0;x=20;x+) for(y=0;y=33;y+) for(z=0;y=100;z+) if(z%3=0 ,#include void main() int x,y,z,j=0; printf(“下面程序是百钱买百鸡.n“); for(x=0;x=20;x+) for(y=0;y=33;y+) z=100-x-y; if(z%3=0 ,改

12、进程序:,图形图案,打印n层用“*”组成的金字塔(如下图为5层)。 * * * * *,main() int n,k,m; printf(“请输入金字塔的行数.n“); scanf(“%d”, ,循环程序典型例题分析,1以下程序的输出结果是 。 #include main() int i=1,j=1; for (; j5) break; if (j%2!=0) j+=3; continue; j-=1; printf(“%d,%d”,i,j); ,1,9,2以下程序的输出结果是 #include main() int k=0,m=0; int i,j; for(i=0;i2;i+) for (

13、j=0;j3;j+) k+; k-=j; m=i+j; printf(”k=%d,m=%d”,k,m); Ak=0,m=3 Bk=0,m=5 Ck=1,m=3 Dk=1,m=5,3以下程序的输出结果是_。 # include main() int i,s=0; for (i=1;i=100;i+) if (i%2=0) continue; s+=i; printf(“s=%dn”,s); ,2500,1. 求s=a+aa+aaa+aaaa+aaaa的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。,2. 求s=1!+2!+3!+n!

14、,编程题,main() int a,n,count=1; long int sn=0,tn=0; printf(“please input a and nn“); scanf(“%d,%d“, ,编程题1参考答案:,5.利用迭代公式求值,用迭代法求某个数a的平方根。 已知求平方根的迭代公式为:,算法设计:可假定一个初值x0=a/2(估计值),根据迭代公式得到一个新的值x1,这个新值x1比初值x0更接近要求的值x;再以新值作为初值,即:x1x0,重新按原来的方法求x1,重复这一过程直到|x1-x0|(某一给定的精度)。此时可将x1作为问题的解。,#include void main() float x, x0, x1, a; printf(“Enter a number a=?n“); scanf(“%f“, ,谢谢,自测题,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1