C+语言程序设计第十讲.ppt
《C+语言程序设计第十讲.ppt》由会员分享,可在线阅读,更多相关《C+语言程序设计第十讲.ppt(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、例例1:输入两个正整数:输入两个正整数a和和n,求,求a+aa+aaa+aaaa+aaaa(n个个a)之和。例如,输入)之和。例如,输入2和和3,则求,则求2+22+222=246。输入输入a和和n for i=0 to n-1sum+=t输出输出sumt=0t=t*10+a#include#include void main()void main()int sum,a,n,i,t;int sum,a,n,i,t;coutInput a,n:;coutan;cinan;t=0;t=0;sum=0;sum=0;for(i=0;in;i+)for(i=0;in;i+)t=t*10+a;t=t*10
2、+a;sum+=t;sum+=t;coutsum=sumendl;coutsum=sumendl;sum=0例例1:输入两个正整数:输入两个正整数a和和n,求,求a+aa+aaa+aaaa+aaaa(n个个a)之和。例如,输入)之和。例如,输入2和和3,则求,则求2+22+222=246。#include#include#include#include void main()void main()int sum,a,n,i,t;int sum,a,n,i,t;coutInput a,n:;coutan;cinan;sum=0;sum=0;t=0;t=0;for(i=0;in;i+)for(i=
3、0;in;i+)t=t+a*pow(10,i);t=t+a*pow(10,i);sum+=t;sum+=t;coutsum=sumendl;coutsum=sumendl;输入输入a和和n for i=0 to n-1sum+=t输出输出sumt=0t=t*10+asum=0t+=a*pow(10,i)例例2:输入一个正整数:输入一个正整数n,计算,计算 的值。的值。#include#include#include#include void main()void main()int n,i;int n,i;float jc,s;float jc,s;coutInput n:;coutn;cin
4、n;jc=1;jc=1;s=1;s=1;for(i=1;i=n;i+)for(i=1;i=n;i+)jc=jc*i;jc=jc*i;s+=1.0/jc;s+=1.0/jc;couts=setiosflags(ios:fixed)couts=setiosflags(ios:fixed)setprecision(3)sendl;setprecision(3)sendl;输入输入n for i=1 to ns+=1.0/jc输出输出sjc=1jc=jc*is=1例例2:输入一个正整数:输入一个正整数n,计算,计算 的值。的值。输入输入n for i=1 to ns+=1.0/jc输出输出sjc=1s
5、=1jc=jc*j for j=1 to i?#include#include void main()void main()int n,i,j;int n,i,j;float jc,s;float jc,s;printf(Input n:);printf(Input n:);scanf(%d,&n);scanf(%d,&n);s=1;s=1;for(i=1;i=n;i+)for(i=1;i=n;i+)jc=1;jc=1;for(j=1;j=i;j+)for(j=1;j=i;j+)jc=jc*j;jc=jc*j;s+=1.0/jc;s+=1.0/jc;printf(s=%.3fn,s);prin
6、tf(s=%.3fn,s);#include#include void main()void main()int i,b,s,g;int i,b,s,g;for(i=100;i1000;i+)for(i=100;i1000;i+)b=i/100;b=i/100;s=i/10%10;s=i/10%10;g=i%10;g=i%10;if(b*b*b+s*s*s+g*g*g=i)if(b*b*b+s*s*s+g*g*g=i)couti;couti;例例3:打印出所有的水仙花数。所谓水仙花数是指一个:打印出所有的水仙花数。所谓水仙花数是指一个3位数,位数,其各位数字的立方和等于该数本身。其各位数字的立
7、方和等于该数本身。for i=100 to 999s=i/10%10b=i/100g=i%10b3+s3+g3=iT输出输出iF153 370 371 407153 370 371 407153 370 371 407153 370 371 407例例3:打印出所有的水仙花数。所谓水仙花数是指一个:打印出所有的水仙花数。所谓水仙花数是指一个3位数,位数,其各位数字的立方和等于该数本身。其各位数字的立方和等于该数本身。for b=1 to 9n=100*b+10*s+gb3+s3+g3=nT输出输出nF#include#include void main()void main()int n,b,
8、s,g;int n,b,s,g;for(b=1;b=9;b+)for(b=1;b=9;b+)for(s=0;s=9;s+)for(s=0;s=9;s+)for(g=0;g=9;g+)for(g=0;g=9;g+)n=100*b+10*s+g;n=100*b+10*s+g;if(b*b*b+s*s*s+g*g*g=n)if(b*b*b+s*s*s+g*g*g=n)coutn;coutn;for s=0 to 9 for g=0 to 9 例例4:输入若干个正整数,以输入若干个正整数,以0或负数结束,将其中个位不为或负数结束,将其中个位不为0的的数输出,并统计满足条件的数据个数。数输出,并统计满足
9、条件的数据个数。#include#include void main()void main()int a100,x,n=0,count=0,i;int a100,x,n=0,count=0,i;cinx;cinx;while(x0)while(x0)an=x;an=x;n+;n+;cinx;cinx;for(i=0;in;i+)for(i=0;in;i+)if(ai%10!=0)if(ai%10!=0)coutai;coutai;count+;count+;coutcout个数是:个数是:count;x;cinx;输入输入x n=0 count+for i=0 to n-1ai%10!=0T输
10、出输出aiF x0an=xcount=0n+输入输入x输出输出count例例5:用公式:用公式/41-1/3+1/5-1/7+求求的近似值,直到最后一的近似值,直到最后一项的绝对值小于项的绝对值小于10-6为止。为止。#include#include void main()void main()float s=0,t;float s=0,t;int n=1,f=1;int n=1,f=1;t=1.0/n;t=1.0/n;while(t=1e-6)while(t=1e-6)s+=f*t;s+=f*t;f=-f;f=-f;n+=2;n+=2;t=1.0/n;t=1.0/n;coutPI=4*sen
11、dl;coutPI=4*s=10-6f=-f输出输出4*st=1.0/ns+=f*tn=1f=1n+=2t=1.0/nwhile(t=1e-6);while(t=1e-6);dodo例例6:输入两个正整数:输入两个正整数m和和n,输出,输出m和和n之间的所有素数,之间的所有素数,每行输出每行输出5个。个。for i=m to nfor j=2 to i-1count=0leap=1 i%j=0Tleap=0Fleap=1T输出输出iFcount+1不是素数不是素数习习 题题例例7:编写程序找出:编写程序找出1000以内的所有完数。一个数恰好等于以内的所有完数。一个数恰好等于它的因子之和,这个数
12、就称为它的因子之和,这个数就称为“完数完数”。例如,。例如,6的因子为的因子为1、2、3,而,而6=1+2+3,因此,因此6是完数。是完数。例例8:输入一个正整数:输入一个正整数n和任意数和任意数x,计算,计算s的值。的值。例例9:将一笔钱换算成:将一笔钱换算成1分、分、2分和分和5分的硬币组合。输入金分的硬币组合。输入金额,问有几种换算方法?针对每一种换算方法,输出各种额,问有几种换算方法?针对每一种换算方法,输出各种面值的硬币数量,要求每种硬币至少有一枚。面值的硬币数量,要求每种硬币至少有一枚。例例10:打印出菱形图案:打印出菱形图案,要求用循环嵌套实现,其中,要求用循环嵌套实现,其中n的
13、值(边长)从键盘输入。的值(边长)从键盘输入。*习习 题题输入输入n di=0 for i=1 to n-1adiaiTxi=iF例例例例1 1:从任意:从任意:从任意:从任意n n个数构成的数列中找出最大的数和最小的数,个数构成的数列中找出最大的数和最小的数,个数构成的数列中找出最大的数和最小的数,个数构成的数列中找出最大的数和最小的数,将最大的数和最后一个数互换,最小的数和第一个数互换。将最大的数和最后一个数互换,最小的数和第一个数互换。将最大的数和最后一个数互换,最小的数和第一个数互换。将最大的数和最后一个数互换,最小的数和第一个数互换。for i=0 to n-1输出输出aiaxia0
14、adian-1输入输入xn=0 for i=0 to n-1ai=aveTcount+F x0an=xave=0例例例例2 2:从键盘输入任意一个大于:从键盘输入任意一个大于:从键盘输入任意一个大于:从键盘输入任意一个大于0 0的实数,存入一个数组中,的实数,存入一个数组中,的实数,存入一个数组中,的实数,存入一个数组中,统计并输出其中大于等于平均值的实数个数。统计并输出其中大于等于平均值的实数个数。统计并输出其中大于等于平均值的实数个数。统计并输出其中大于等于平均值的实数个数。输出输出countave/=nn+输入输入x for i=0 to n-1ave+=aicount=0例例例例3 3
15、:找出:找出:找出:找出11001100之间能被之间能被之间能被之间能被7 7或或或或1111整除的所有整数,将这些整整除的所有整数,将这些整整除的所有整数,将这些整整除的所有整数,将这些整数放在数组中然后输出,要求一行输出数放在数组中然后输出,要求一行输出数放在数组中然后输出,要求一行输出数放在数组中然后输出,要求一行输出1010个数。个数。个数。个数。for i=1 to 100n=0i%7=0|i%11=0Tan=iFn+for i=0 to n-1 输出输出ai(i+1)%10=0T换行换行F例例例例4 4:将任意一个互不相同且非:将任意一个互不相同且非:将任意一个互不相同且非:将任意
16、一个互不相同且非0 0 的整数组成的数列输入到的整数组成的数列输入到的整数组成的数列输入到的整数组成的数列输入到 数组中数组中数组中数组中(0(0结束结束结束结束),然后查找某个数是否在这个数列中。若在,然后查找某个数是否在这个数列中。若在,然后查找某个数是否在这个数列中。若在,然后查找某个数是否在这个数列中。若在,就输出该数在数列中的位置;若不在,就输出相关信息。就输出该数在数列中的位置;若不在,就输出相关信息。就输出该数在数列中的位置;若不在,就输出相关信息。就输出该数在数列中的位置;若不在,就输出相关信息。输入输入xn=0 for i=0 to n-1ai=yTbreakF x!=0an
17、=x输入输入yn+输入输入x inT在在F输出输出i不在不在例例例例5 5:查找一个数是否在一个数列(由非:查找一个数是否在一个数列(由非:查找一个数是否在一个数列(由非:查找一个数是否在一个数列(由非0 0整数构成)中,若整数构成)中,若整数构成)中,若整数构成)中,若在,从数列中删除这个数。在,从数列中删除这个数。在,从数列中删除这个数。在,从数列中删除这个数。输入输入y for i=0 to n-1ai=kTfor j=i+1 to n-1F for i=0 to n-1 输出输出ai输入一组非输入一组非0整数整数 aj-1=ajn-i-基本思想:假设数组基本思想:假设数组基本思想:假设
18、数组基本思想:假设数组a a已经按已经按已经按已经按由小到大由小到大由小到大由小到大的顺序排的顺序排的顺序排的顺序排好序,设三个变量好序,设三个变量好序,设三个变量好序,设三个变量low,highlow,high和和和和midmid分别代表首元素,分别代表首元素,分别代表首元素,分别代表首元素,最后一个元素以及中间元素的下标,初值分别为:最后一个元素以及中间元素的下标,初值分别为:最后一个元素以及中间元素的下标,初值分别为:最后一个元素以及中间元素的下标,初值分别为:low=0low=0、high=n-1high=n-1、mid=(low+high)/2mid=(low+high)/2。从中间
19、元素。从中间元素。从中间元素。从中间元素开始查找,用开始查找,用开始查找,用开始查找,用x x和和和和amidamid比较,此时有三种情况:比较,此时有三种情况:比较,此时有三种情况:比较,此时有三种情况:1)1)若若若若x=amid x=amid,则查找成功;,则查找成功;,则查找成功;,则查找成功;2)2)若若若若x amid x amid x amid,则令,则令,则令,则令low=mid+1low=mid+1折半查找法折半查找法例:数组元素为:例:数组元素为:例:数组元素为:例:数组元素为:5,13,19,21,37,56,64,75,80,88,925,13,19,21,37,56,
20、64,75,80,88,921.1.查找查找查找查找x=21 x=21 的情况的情况的情况的情况(1)low=0;high=10;mid=(0+10)/2=5(1)low=0;high=10;mid=(0+10)/2=5 5 13 19 21 37 56 64 75 80 88 92 5 13 19 21 37 56 64 75 80 88 92lowlowmidmidhighhigh因为因为因为因为amidxamidx,所以向左找,令,所以向左找,令,所以向左找,令,所以向左找,令high=mid-1=4high=mid-1=4(2)low=0;high=4;mid=(0+4)/2=2(2)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 第十
限制150内