C语言双重循环ppt课件

上传人:m**** 文档编号:568782718 上传时间:2024-07-26 格式:PPT 页数:52 大小:2.11MB
返回 下载 相关 举报
C语言双重循环ppt课件_第1页
第1页 / 共52页
C语言双重循环ppt课件_第2页
第2页 / 共52页
C语言双重循环ppt课件_第3页
第3页 / 共52页
C语言双重循环ppt课件_第4页
第4页 / 共52页
C语言双重循环ppt课件_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《C语言双重循环ppt课件》由会员分享,可在线阅读,更多相关《C语言双重循环ppt课件(52页珍藏版)》请在金锄头文库上搜索。

1、 循环结构回顾循环结构回顾循环控制循环控制 循环循环:就是在给定的条件成立时反复就是在给定的条件成立时反复执行某一程序段,被反复执行的程序执行某一程序段,被反复执行的程序段称为段称为循环体循环体。在在C语言中可以用以下语句来实现循语言中可以用以下语句来实现循环:环:1、用、用while语句;语句;2、用、用do-while语句;语句;3、用、用for语句;语句;2 2 1、while 语句语句 循环体循环体循环体循环体非零非零非零非零零零零零表达式表达式表达式表达式while ( (表达式)表达式)表达式)表达式) 循环体;循环体;循环体;循环体;循环控制循环控制3 3例例 (ch5_01.c

2、)求)求1+2+3+4+5+100。#include#includemain()main()inti,sum=0;inti,sum=0;i=1;i=1;while(i=100)while(i=100)sum=sum+i;sum=sum+i;i+;i+;printf(%d,sum);printf(%d,sum); 循环初值循环初值循环初值循环初值循环终值循环终值循环终值循环终值循环变量增值循环变量增值循环变量增值循环变量增值 循环条件循环条件循环条件循环条件循环体循环体循环体循环体4 42、do-while语句语句 循环体循环体循环体循环体非零非零非零非零零零零零表达式表达式表达式表达式do 循

3、环体;循环体;循环体;循环体; while ( (表达式);表达式);表达式);表达式);循环控制循环控制5 5例例 (ch5_01.c)求)求1+2+3+4+5+100。#includemain() inti,sum=0;i=1;dosum+=i;i+;while(i=100);printf(%d,sum);6 63、for语句语句表达式表达式表达式表达式1 1表达式表达式表达式表达式2 2循环体语句循环体语句循环体语句循环体语句表达式表达式表达式表达式3 3非零非零非零非零 零零零零循环控制循环控制for ( (表达式表达式表达式表达式1 1;表达式;表达式;表达式;表达式2 2;表达式;

4、表达式;表达式;表达式3 3) 循环体循环体循环体循环体 sum=0; for(i=1;i=100;i+) sum=sum+i; 7 75.6 双重循环控制双重循环控制5.6 循环的嵌套循环的嵌套三种循环可互相嵌套三种循环可互相嵌套,层数不限层数不限外层循环可包含两个以上内循环外层循环可包含两个以上内循环嵌套循环的执行流程嵌套循环的执行流程嵌套循环的跳转嵌套循环的跳转禁止:禁止:从外层跳入内层从外层跳入内层跳入同层的另一循环跳入同层的另一循环(1)while()while().(2)dodowhile();.while();(3)while()dowhile();.(4)for(;)dowhi

5、le();while().内内内内循循循循环环环环外循环外循环外循环外循环内内内内循循循循环环环环9 9()当当当当外外外外层层层层循循循循环环环环结结结结构构构构每每每每执执执执行行行行一一一一次次次次循循循循环环环环时时时时,内内内内层层层层循循循循环环环环结结结结构构构构在在在在一一一一般般般般情情情情况况况况下下下下要要要要从从从从循循循循环环环环的的的的开开开开始始始始到到到到循循循循环环环环的的的的正正正正常常常常结结结结束束束束从从从从头头头头到尾执行一遍到尾执行一遍到尾执行一遍到尾执行一遍。例例例例11()在在在在内内内内层层层层循循循循环环环环结结结结构构构构中中中中使使使使

6、用用用用breakbreak语语语语句句句句可可可可以以以以提提提提前前前前结结结结束束束束本本本本次次次次内内内内层层层层循循循循环环环环结结结结构构构构的的的的执执执执行行行行,而而而而不不不不影影影影响响响响外外外外层层层层循循循循环环环环结结结结构构构构的的的的继继继继续执行续执行续执行续执行。例例例例22()如如如如果果果果程程程程序序序序因因因因某某某某种种种种原原原原因因因因需需需需要要要要从从从从内内内内层层层层循循循循环环环环体体体体跳跳跳跳出出出出整整整整个个个个循环结构,此时才可考虑使用循环结构,此时才可考虑使用循环结构,此时才可考虑使用循环结构,此时才可考虑使用 got

7、ogoto语句。语句。语句。语句。例例例例33()()()()对于并列的循环结构,控制循环执行的变量名字对于并列的循环结构,控制循环执行的变量名字对于并列的循环结构,控制循环执行的变量名字对于并列的循环结构,控制循环执行的变量名字可以相同。可以相同。可以相同。可以相同。在嵌套循环结构中,在嵌套循环结构中,在嵌套循环结构中,在嵌套循环结构中,内、外层控制循环执行内、外层控制循环执行内、外层控制循环执行内、外层控制循环执行的变量名字不能相同。的变量名字不能相同。的变量名字不能相同。的变量名字不能相同。例例例例4 4 对于嵌套循环结构的几点说明:对于嵌套循环结构的几点说明:1010例例1:main(

8、)inti,j;for(i=0;i3;i+)for(j=1;j=4;j+)printf(%d,j);printf(n);运行后,运行后,输出:输出:1234123412341111例例2:main()inti,j;for(i=0;i3;i+)for(j=1;j=4;j+)printf(%d,j);if(j%3=0)break;printf(n);运行后,输出:运行后,输出:1231231231212例例3:main()inti,j;for(i=0;i3;i+)for(j=1;j=4;j+)printf(%d,j);if(!(j%3)gotol;printf(n);l:;运行后,输出:运行后,输

9、出: 1231313例例4:main()inti,j;for(i=0;i3;i+)printf(%d,i);printf(n);for(i=1;i=4;i+)printf(%d,i);运行后,运行后,输出:输出:01212341414分析分析分析分析: :求累加和求累加和求累加和求累加和s ss=0s=0for(k=1;k=n;k+)for(k=1;k=n;k+)求求求求t tk ks=s+ts=s+tk k 求累乘积求累乘积求累乘积求累乘积t tk k=k!=k!t tk k=1=1for(i=1;i=k;i+)for(i=1;i=k;i+)ttk k=t=tk k*i *imain()ma

10、in() inti,k;inti,k;longs,t;longs,t;printf(nInputn:);printf(nInputn:);scanf(%d,&n);scanf(%d,&n);s=0;s=0;for(k=1;k=n;k+)for(k=1;k=n;k+) t=1;t=1;for(i=1;i=k;i+)for(i=1;i=k;i+)t=t*i;t=t*i;s=s+t;s=s+t; printf(ns=%ld,s);printf(ns=%ld,s); Inputn:5Inputn:5 s=153s=153例例(ch5_07.c)求求1!+2!+n! 内外层循环控制变量内外层循环控制变量

11、内外层循环控制变量内外层循环控制变量不要同名。不要同名。不要同名。不要同名。1515main()main()inti,k;inti,k;longs,t;longs,t;printf(nInputn:);printf(nInputn:);scanf(%d,&n);scanf(%d,&n);s=0;s=0;for(for(k=1;k=n;k+k=1;k=n;k+) )t=1;t=1;for(for(i=1;i=k;i+i=1;i=k;i+) )t=t*i;t=t*i;s=s+t;s=s+t;printf(ns=%ld,s);printf(ns=%ld,s); n=3n=3skk3skk3外循外循外

12、循外循tiiktiik内循内循内循内循 Inputn:Inputn: 3 3 s=9s=9 1 12 20 01 1 2 21 12 21 11 11 11 1 1 12 21 12 2 2 23 30 03 3 3 31 13 31 11 11 11 1 1 12 21 12 2 2 23 31 13 3 6 64 40 09 9 4 40 0 0 0 1 11 11 11 11 11 11 11616main()main() inti,k;inti,k;longs,t;longs,t;printf(nInputn:);printf(nInputn:);scanf(%d,&n);scanf(

13、%d,&n);s=0;s=0;for(k=1;k=n;k+)for(k=1;k=n;k+) t=1;t=1;for(i=1;i=k;i+)for(i=1;i=k;i+)t=t*i;/*t=t*i;/*求求求求t!*/t!*/s=s+t;s=s+t;/*/*求求求求s=1!+2!+n!*/s=1!+2!+n!*/printf(n1!+2!+%d!=%ldn,n,s);printf(n1!+2!+%d!=%ldn,n,s); Inputn:5Inputn:5 1!+2!+5!=1531!+2!+5!=153例例(ch5_07.c)求求1!+2!+n!1717main()main() inti,k;

14、inti,k;longs,t;longs,t;printf(nInputn:);printf(nInputn:);scanf(%d,&n);scanf(%d,&n);s=0;s=0;t=1;t=1;for(k=1;k=n;k+)for(k=1;k=n;k+)t=t*i;/*t=t*i;/*求求求求t!*/t!*/s=s+t;/*s=s+t;/*求求求求s=1!+2!+n!*/s=1!+2!+n!*/printf(n1!+2!+%d!=%ldn,n,s);printf(n1!+2!+%d!=%ldn,n,s); Inputn:5Inputn:5 1!+2!+5!=1531!+2!+5!=153例

15、例(ch5_07.c)求求1!+2!+n!1818* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *1 14 43 32 2for(i=1;i=5;i+)for(j=1;j=5;j+)printf(“* * * *);printf(n“);for(i=1;i=5;i+)for(j=1;j=1;i-)for(j=1;j=i;j+)printf(“* *);printf(n“);for(i=1;i=5;i+)

16、for(j=1;ji;j+)printf();for(j=1;j=5-i+1;j+)printf(* *);printf(n“);for(i=1;i=5;i+)for(j=1;j5-i+1;j+)printf();for(j=1;j=i;j+)printf(“* *);printf(n);19191 12 23 34 45 56 67 78 89 91 12 24 43 36 69 99 918182727363645455454636372728181.例(例(ch5_08.c)循环嵌套,输出九九表。)循环嵌套,输出九九表。ij2020i=9i=9输出输出输出输出i*ji*j假假假假(0)(

17、0)真真真真( (非非非非0)0)i=1i=1j+j+j=1j=1j=ij=i真真真真( (非非非非0)0)假假假假(0)(0)i+i+外循环外循环外循环外循环内循环内循环内循环内循环2121#include#includemain()main()inti,j;inti,j;for(i=1;i=9;i+)for(i=1;i=9;i+)printf(%4d,i);printf(%4d,i);printf(n-n);printf(n-n);for(i=1;i=9;i+)for(i=1;i=9;i+) for(j=1;j=i;j+)for(j=1;j=i;j+)printf(%4d,i*j);pri

18、ntf(%4d,i*j); printf(n);printf(n); 2222 分析分析分析分析: :uu 行的控制行的控制行的控制行的控制 i i: :1 19 9uu*的个数的个数的个数的个数j j与当前行的关系与当前行的关系与当前行的关系与当前行的关系: :j=2*i-1j=2*i-1uu*前面的空格前面的空格前面的空格前面的空格k k与行的关系与行的关系与行的关系与行的关系: :开始时开始时开始时开始时, ,第一行有第一行有第一行有第一行有8 8个空格个空格个空格个空格每多一行每多一行每多一行每多一行, ,少一个空格少一个空格少一个空格少一个空格k=9-ik=9-iwhile(i=9)

19、while(i=9) for(k=1;k=9-i;k+)for(k=1;k=9-i;k+)输出空格输出空格输出空格输出空格; ; for(j=1;j=2*i-1;j+)for(j=1;j=2*i-1;j+)输出输出输出输出* *; ; *2323main()inti,j,k;for(i=1;i=9;i+)for(k=1;k=9-i;k+)printf(“”);for(j=1;j=2* *i-1;j+)printf(“* *”);printf(“n”);i=1i=9k=1k=9-i输出空格输出空格k=k+1j=1j=2*i-1输出输出*j=j+1换行换行,i=i+12424 11 i i控制控制

20、控制控制行行行行: : i19i19空格数空格数空格数空格数:9-9-i i112 211j j控制列控制列控制列控制列: :第第第第i i行行行行左边左边左边左边: 1 1ii12123 32121右边右边右边右边:i-11:i-11.12345678123456789 98765432187654321例例编程输出下面的数字金字塔编程输出下面的数字金字塔(1到到9)。2525 (ch5_09.cch5_09.c)main()main()inti,j,k,m;inti,j,k,m;for(i=1;i=9;i+)for(i=1;i=9;i+)for(j=1;j=9-i;j+)/*for(j=1

21、;j=9-i;j+)/*输出输出输出输出9-i9-i个空格个空格个空格个空格*/ */putchar();putchar(); for(j=1;j=i;j+)/*for(j=1;j0;j-)/*for(j=i-1;j0;j-)/*输出输出输出输出i-1i-1到到到到1*/1*/ printf(“%d”,j);printf(“%d”,j);printf(“n”);printf(“n”);26265.7 循环程序设计的问题循环程序设计的问题写循环,先要发现循环。注意计算中的重复写循环,先要发现循环。注意计算中的重复 性动作,引进循环可能统一描述和处理。性动作,引进循环可能统一描述和处理。 重复动作

22、的常见例子:重复动作的常见例子: ?累积一批可按规律算出的数据累积一批可按规律算出的数据(如累加等);如累加等); ?反复从一个结果算出下一结果(递推等,反复从一个结果算出下一结果(递推等, 见教材见教材P71例例5.9);); ?对一批数据做同样的加工处理对一批数据做同样的加工处理.2727写循环结构时要考虑和解决的问题:写循环结构时要考虑和解决的问题:I.循环涉及哪些变量,引进什么临时性变循环涉及哪些变量,引进什么临时性变量?量? II.这些变量在循环正式开始前应给什么初这些变量在循环正式开始前应给什么初值?循环如何开始?值?循环如何开始? III.每次循环中变量的值应如何改变?每次循环中

23、变量的值应如何改变? IV.什么情况下继续循环(什么情况下终止)什么情况下继续循环(什么情况下终止)? V.循环终止后如何得到所需结果?循环终止后如何得到所需结果?2828循环中的几种变量循环中的几种变量循环中常出现几类变量,了解这些有助于循环中常出现几类变量,了解这些有助于思考和分析。这也是写循环程序的经验总结。思考和分析。这也是写循环程序的经验总结。1 1)循环控制变量)循环控制变量)循环控制变量)循环控制变量( (循环变量循环变量循环变量循环变量) ):循环前设初值,循:循环前设初值,循:循环前设初值,循:循环前设初值,循环递增环递增环递增环递增/ /递减,达到递减,达到递减,达到递减,

24、达到/ /超过界限时循环结束。控制超过界限时循环结束。控制超过界限时循环结束。控制超过界限时循环结束。控制循环的进行循环的进行循环的进行循环的进行/ /结束。结束。结束。结束。 forfor中常有这类变量。中常有这类变量。中常有这类变量。中常有这类变量。 for(n=0;n10;n+).for(n=0;n10;n+).for(n=2;n52;n+=4).for(n=2;n52;n+=4).29292 2)累积变量:循环中常用)累积变量:循环中常用)累积变量:循环中常用)累积变量:循环中常用+=+=或或或或* *= =等更新。初值常等更新。初值常等更新。初值常等更新。初值常用运算的单位元(加用用

25、运算的单位元(加用用运算的单位元(加用用运算的单位元(加用0 0;乘用;乘用;乘用;乘用1 1为初值)。循环为初值)。循环为初值)。循环为初值)。循环结束时变量终值被作为循环计算结果。结束时变量终值被作为循环计算结果。结束时变量终值被作为循环计算结果。结束时变量终值被作为循环计算结果。 3 3)递推变量:前两类变量的推广形式。复杂循环)递推变量:前两类变量的推广形式。复杂循环)递推变量:前两类变量的推广形式。复杂循环)递推变量:前两类变量的推广形式。复杂循环常用几个协同的变量,每次由一个常用几个协同的变量,每次由一个常用几个协同的变量,每次由一个常用几个协同的变量,每次由一个/ /几个变量推出

26、几个变量推出几个变量推出几个变量推出一个新值,其余依次更新。一个新值,其余依次更新。一个新值,其余依次更新。一个新值,其余依次更新。 对变量对变量对变量对变量x1x1、x2x2、x3x3,循环体可能有序列:,循环体可能有序列:,循环体可能有序列:,循环体可能有序列: x1=x0.;x1=x0.;x2=x1.;x2=x1.;x3=.x1.x2.;x3=.x1.x2.;3030本章重点本章重点三种循环语句三种循环语句三种循环语句三种循环语句whilewhile,do-while,do-while和和和和forfor建立循环通常有以下情况建立循环通常有以下情况建立循环通常有以下情况建立循环通常有以下

27、情况: :1.1.给定次数给定次数给定次数给定次数,for,for比较适用比较适用比较适用比较适用 for(i=1;i100;i+)for(i=1;i100;i+)2.2.给定条件给定条件给定条件给定条件,while,while比较适用比较适用比较适用比较适用 while(x+y)z)while(x+y)a&cA&ca&cA&c=1.0e-6)pi=pi+t;n=n+2;s=-s;t=s/n;pi=pi*4;printf(“pi=%10.6fn”,pi);3232方法一:数列是正、负相间的,在这里可用一方法一:数列是正、负相间的,在这里可用一个个“开关开关”变量变量t来解决符号的问题。来解决符

28、号的问题。main()floats=0;intt=1,i;for(i=1;i101;i+)s+=1.*t/i;t=-t;printf(s=%fn,s);在处理循环时应注意在处理循环时应注意初、终值初、终值的设定!的设定!例例求求s=1-1/2+1/3-1/4+1/99-1/100。3333方方法法二二:分分别别求求出出正正项项和和s1(奇奇数数倒倒数数)与与负负项项和和s2(偶数倒数偶数倒数),则,则s=s1-s2main()floats,s1=0,s2=0;inti;for(i=1;iE,W-A.非字母字符忽略。非字母字符忽略。思路思路:1.建建 立立 循循 环环 , 循循 环环 结结 束束

29、 以以 输输 入入 回回 车车 符符 为为 准准 while(c=getchar()!=n)2.判断输入是否是字符判断输入是否是字符,否则忽略否则忽略if(c=a&c=A&cZ&cz)c=c-26AZ.a.z.3535#include“stdio.h”#include“stdio.h”main()main()charc;charc;while(c=getchar()!=n)while(c=getchar()!=n)if(c=a&c=A&c=a&c=A&cZ&cz)c=c-26;if(cZ&cz)c=c-26;printf(“%c”,c);printf(“%c”,c); abdEgWefhIkA

30、3636*本例还是要考虑每行的空格数、和星本例还是要考虑每行的空格数、和星号数问题,但要关注号数问题,但要关注空格数与星号数空格数与星号数在增在增加到一定的时候又要减少的规律。加到一定的时候又要减少的规律。例例用循环语句显示下面的图案。用循环语句显示下面的图案。3737 #includemain()inti,j,k;for(i=-2;i=2;i+) for(j=1;j=18+fabs(i);j+)printf();for(k=1;k=5-2*fabs(i);k+)printf(*);printf(n);注意初、终值注意初、终值从从-2到到2的目的目的。的。fabs(i)变化规律是:变化规律是:

31、2,1,0,1,2。每行的空格数是:每行的空格数是:20,19,18,19,20。每行的星号数是:每行的星号数是:1,2,3,2,1。for(i=0;i4;i+)for(j=0;j20-i;j+)printf(“”);/*空格递减空格递减*/for(k=0;k2*i+1;k+)printf(“*”);/*星号递增星号递增*/3838例例汽车里程表上的读数是汽车里程表上的读数是95859,7小时之小时之后里程表的读数是一个对称数(最大是后里程表的读数是一个对称数(最大是5位数),问汽车的速度(是一个整数)。位数),问汽车的速度(是一个整数)。解题思路解题思路:检查所有的在检查所有的在95859到

32、到99999之间的对称数,之间的对称数,如果它与如果它与95859的差能被的差能被7整除,则商是速整除,则商是速度。度。/*第一种算法第一种算法*/3939main()longi,a,b,c,e,d;flaotf,g;i=95859;while(i=99999)a=i/10000;b=(i-a*10000)/1000;c=(i-a*10000-b*1000)/100;d=(i-a*10000-b*1000-c*100)/10;e=i-a*10000-b*1000-c*100-d*10;if(a=e)&(b=d)if(i-95859)%7)=0)printf(“Thespeedis%d”,(i-

33、95859)/7);i+;该程序需要执行循环该程序需要执行循环99999-95859次!次!4040/*第二种算法第二种算法*/main()longi,distance,a,b,c,d;(fori=1;i=200;i+)distance=95859+i*7;a=distance/10000b=(distance-a*10000)/1000;c=(distance-a*10000-b*1000)/100;d=(distance-a*10000-b*1000-c*100)/10;e=distance-a*10000-b*1000-c*100-d*10;if(a=e)and(b=d)printf(“

34、Thespeedis%d”,i);循环次数为循环次数为循环次数为循环次数为 200-20200-204141/*第三种算法第三种算法*/main()longi,j,distance,speed:real;for(i=6;i=9;i+)for(j=0;j=9;j+)distance=90000+i*1000+j*100+i*10+9;if(distanc%7)=0)printf(“Thespeedis%d”,distance/7);distance=distance-95959if(distance%7)=0)printf(“Thespeedis%d”,distance/7);该程序需要循环该程

35、序需要循环(9-6)*10+1次!次!4242分析分析:( 1) 因因 为为 新新 出出 现现 的的 数数 ( dcbcd) 是是 :个个位位数数字字(d)与与万万位位数数字字、十十位位数数字字(c)与与千千位位数数字字相相同同,而而百百位位数数字字(b)只只能能是是,表表示示万万位位和和千千位位的的变变量量a取取值值范范围围为为:9599。所所以以,要要将将a分分隔隔出出的的十十位位数数字字和和个个位位数数字字分分别别赋予赋予d和和c。(2)约束条件是:公里数对称且车速为整数。)约束条件是:公里数对称且车速为整数。注意:注意:注意:注意:9585995859超过了整型量的范围,应使超过了整型

36、量的范围,应使超过了整型量的范围,应使超过了整型量的范围,应使用长整型量。用长整型量。用长整型量。用长整型量。4343循环循环a=95;a=99;a+求出万、千位上的数字求出万、千位上的数字循环百位数字循环百位数字b=0;b=99找出对称的数字找出对称的数字计算路程、车速计算路程、车速车速为整且路程车速为整且路程 为正为正跳出并输出跳出并输出非非非非0 00 04444main() int a,b,c,d,n,v; long int m; for(a=95;a=99;a+) d=a/10; c=a-d*10; /*分别求出万、千位上的数字分别求出万、千位上的数字 */ for(b=0;b0)

37、goto loop; loop: printf(v=%dkm/h m=%ldkmn,v,m); 车速为整数且路程为正车速为整数且路程为正时转出循环并输出结果时转出循环并输出结果找出对称找出对称的数字的数字4545在在本本例例这这样样的的情情况况下下,从从内内循循环环体体直直接接使使用用goto语语句句跳跳出出整整个个循循环环结结构构,收收到到了了事事半半功功倍倍的的效效果果。但但我我们们再再次次强强调调,要要限制、最好不使用限制、最好不使用goto语句。语句。思考:思考:(1)若若将将if语语句句后后goto语语句句改改为为break语语句,结果如何?句,结果如何?( 2) 若若 将将 pri

38、ntf(v=%d m=%ldn,v,m);直直接接放放在在if语语句句后后,结结果果又又如何?如何?46465. 9 课堂练习课堂练习 百钱买百鸡百钱买百鸡:鸡翁鸡翁1,钱值钱值5;鸡母鸡母1,钱值钱值3;鸡鸡雏雏3,钱值钱值1;何以百钱买百鸡何以百钱买百鸡?main()main()intx,y,z;intx,y,z;for(x=1to20)for(x=1to20)for(y=1to33)for(y=1to33)if(x*5+y*3+(100-x-y)/3.0)=100)if(x*5+y*3+(100-x-y)/3.0)=100)printf(“x=%d,y=%d,z=%d”,x,y,100-

39、x-y);printf(“x=%d,y=%d,z=%d”,x,y,100-x-y); 4747打印出打印出100到到200之间所有的素数之间所有的素数#include“math.h”#include“math.h”main()main()intn,m,i,k;intn,m,i,k;for(n=100;n=200;n+)for(n=100;n=200;n+)k=sqrt(n);k=sqrt(n);for(i=2;i=k;i+)for(i=2;i=k;i+)if(n%i)=0)break;if(n%i)=0)break;if(i=k+1)if(i=k+1)printf(“%dprimenumber

40、n”,m);printf(“%dprimenumbern”,m);elseelseprintf(“%dnotaprimen”,m);printf(“%dnotaprimen”,m); 4848课外练习课外练习一一、每每个个苹苹果果0.8元元,第第一一天天买买两两个个苹苹果果。从从第第二二天天开开始始,每每天天买买前前一一天天的的2倍倍,当当每每天天购购买买苹苹果果的的数数大大于于100时时,则则停停止止.求求平平均均每天花多少钱每天花多少钱?二二、输输入入一一行行字字符符,回回车车为为结结束束,分分别别统统计计出出其其中中的的英英文文字字母母,空空格格,数数字字和和其其它它字字符的个数。符的个

41、数。4949求分数数列前求分数数列前 20项之和。项之和。解法一:解法一:main()inti,t,n=20,f=1;floata=2,b=1,s=0;for(i=1;i=n;i+)s=s+a/b;t=a;a=a+b;b=t;f=-f;printf(“sum=%10.6f”,s);解法二:解法二:main()inti,t,n=20,f=1;floata=2,b=1,s=0;for(i=1;i=n;i+)s=s+a/b;t=a;a=a+b;b=t;f=-f;printf(“sum=%10.6f”,s);5050 例例 输入一个整数,计算它的位数输入一个整数,计算它的位数.并反向输出并反向输出.分

42、析分析:设一个数设一个数13579,一位一位地切下末位一位一位地切下末位循环结束条件循环结束条件:num=0;同时计数同时计数count=count+1;13513513571357135791357977bitbitbitbit9955bitbit1313bitbit11bitbitbit=num%10 num=num/1013571357 9 91351357 713135 5count=0;输入输入numnum!=0输出输出num%10count+num=num/10输出输出count3311335151main()main()longintnum;longintnum;intcount

43、=0;intcount=0;printf(“Pleaseenteraninteger:n”);printf(“Pleaseenteraninteger:n”);scanf(“%ld”,&num);scanf(“%ld”,&num);dodoprintf(“%d”,num%10);printf(“%d”,num%10);num=num/10;num=num/10;count+;count+;while(num!=0);while(num!=0);printf(“%ddigits.”,count);printf(“%ddigits.”,count); Pleaseenteraninteger:Pleaseenteraninteger:38293829 92834digits.92834digits.5252

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号