资源预览内容
第1页 / 共62页
第2页 / 共62页
第3页 / 共62页
第4页 / 共62页
第5页 / 共62页
第6页 / 共62页
第7页 / 共62页
第8页 / 共62页
第9页 / 共62页
第10页 / 共62页
亲,该文档总共62页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第六章 循环控制6.16.1 概述概述6.26.2 gotogoto语语句以及用句以及用gotogoto语语句构成循句构成循环环6.36.3 whilewhile语语句和句和do-whiledo-while语语句句6.46.4 forfor语语句句6.56.5 循循环环的嵌套的嵌套6.66.6 breakbreak和和continuecontinue语语句句整理课件整理课件6.1 6.1 循循环环控制概述控制概述 循循循循环环环环结结结结构构构构的的的的特特特特点点点点:在在在在给给给给定定定定条条条条件件件件成成成成立立立立时时时时,反反反反复复复复执执执执行行行行某某某某程程程程序序序序段段段段,直直直直到条件不成立到条件不成立到条件不成立到条件不成立为为为为止。止。止。止。语语语语言提供的循言提供的循言提供的循言提供的循环结环结环结环结构构构构类类类类型如下:型如下:型如下:型如下:1 1)用)用)用)用gotogoto语语语语句和句和句和句和if if语语语语句构成循句构成循句构成循句构成循环环环环;2 2)用)用)用)用whilewhile语语语语句;句;句;句;3 3)用)用)用)用do-whiledo-while语语语语句;句;句;句;4 4)用)用)用)用forfor语语语语句;句;句;句; 循循环环条件条件循循环环体体整理课件整理课件6.2 goto6.2 goto 语语句以及用句以及用goto goto 语语句构句构成循成循环环6.2.1形式:形式:gotogoto语语语语句句句句标标标标号;号;号;号;6.2.2功功能能:一一一一进进进进入入入入执执执执行行行行gotogoto语语语语句句句句、立立立立即即即即转转转转向向向向去去去去执执执执行其后面行其后面行其后面行其后面标标标标号所指示的号所指示的号所指示的号所指示的语语语语句句句句gotojump;loop:gotojump;loop: 语语语语句句句句1 1语语语语句句句句11语语语语句句句句2 2语语语语句句句句22语语语语句句句句nn语语语语句句句句n njump:jump: 语语语语句句句句n+1n+1gotoloop;gotoloop; 用用用用标识标识标识标识符表示符表示符表示符表示分号分号分号分号冒号冒号冒号冒号冒号冒号冒号冒号整理课件整理课件6.2.3注注意意:结结构构化化程程序序设设计计方方法法主主张张限限制制使使用用goto语语句句,一一般般只只在在下下面面两两种种结结构构中中表示循表示循环环一、一、loop:if(表达式表达式)语语句句gotoloop;表达式表达式值为值为零零时时,立即停止循,立即停止循环环二、二、loop:语语句句if(!表达式表达式)gotoloop;表达式表达式值值非零非零时时,立即停止循,立即停止循环环 语语句句当表达式当表达式值值非零非零语语句句直到表达式直到表达式值值为为零零整理课件整理课件例例:用用goto语语句和句和if语语句构成循句构成循环环。例例用goto语句和if语句构成循环。voidmain()inti,sum=0;i=1;loop:if(i=100)sum=sum+i;i+;gotoloop;printf(%dn,sum);运行运行结结果:果:5050i=101i=101整理课件整理课件形式:形式:while(表达式表达式)语语句句表达式表达式值为值为零零时时,立即停止循,立即停止循环环 形式:形式:do语语句句while(表达式表达式);表达式表达式值为值为零零时时,立即停止,立即停止循循环环,至少至少执执行一次循行一次循环语环语句句语语句句当表达式当表达式值值非零非零非零非零语语句句直到表达式直到表达式值值为为为为零零零零6.36.3 while while 和和do while do while 语语句句分号分号分号分号整理课件整理课件while(表达式表达式)do语语句句while(表达式表达式);整理课件整理课件例例1.写出下面程序的运行写出下面程序的运行结结果果 (1)voidmain()(1)voidmain()inti=1;inti=1;while(i=3)while(i=3) printf(”%dn”,i);i+;printf(”%dn”,i);i+; (2)voidmain()(2)voidmain()inti=1;inti=1;while(i=3)while(i=10)k=0;if(sum=10)k=0; while(k=1)while(k=1); ;printf(”sum=%dn”,sum);printf(”sum=%dn”,sum); 改改为为while(k=1)死循死循死循死循环环环环sumsumn n0 01 11 12 23 33 36 64 41010结结结结果果果果: :sum=10sum=10整理课件整理课件例例2用用while语语句和句和do-while语语句求句求传统传统流程流程图图表示算法表示算法 不成立不成立不成立不成立成立成立成立成立成立成立成立成立不成立不成立不成立不成立整理课件整理课件N-S图表示算法100100100100整理课件整理课件voidmain()voidmain()inti,sum=0;inti,sum=0;i=1;i=1;运行运行运行运行结结结结果:果:果:果:50505050while(i=100)while(i=100)sum+=i;i+;sum+=i;i+;printf(%dn,sum);printf(%dn,sum);voidvoid main()main()inti,sum=0;inti,sum=0;i=1;i=1;dosum+=i;i+;dosum+=i;i+;while(i=100);while(i=100);printf(%dn,sum);printf(%dn,sum);注意:注意:i和和sum的初的初值值i的的终值终值整理课件整理课件例例3统计统计从从键盘输键盘输入一行字符的个数。入一行字符的个数。#includevoidmain()intn=0;printf(inputastring:n);while(getchar()!=n)n+;printf(%d,n);只要从只要从键盘输键盘输入入的字符不是回的字符不是回车车就就继续继续循循环环完成完成对输对输入字入字符个数符个数计计数。数。输输入:入:ascdf 输输出:出:5整理课件整理课件例例4.计计算算p=123nvoidmain()inti,n;longp;scanf(”%d”,&n);i=1;p=1;while(i=n)p*=i;i+;printf(”p=%ldn”,p); 不用不用不用不用longlong会溢出会溢出会溢出会溢出重复到重复到重复到重复到n n次次次次, ,也可以写成也可以写成也可以写成也可以写成in+1i0)voidmain()inti,n;longs,t;scanf(”%d”,&n);i=1;t=1;s=0;dot*=i;s+=t;i+;while(i=n);printf(”s=%ldn”,s);保保保保证证证证达达达达到到到到计计计计算算算算n n次次次次 t=1123t=1123S=1+12+123+S=1+12+123+整理课件整理课件例例6.计计算算下下面面二二十十个个数数的的和和:13.8、-65、68.9、342.987voidmain()inti=1;floatx,sum=0;while(i=20)scanf(”%f”,&x);sum+=x;i+;printf(”sum=%fn”,sum);注:注:执执执执行程序行程序行程序行程序时输时输时输时输入入入入13.86568.9342.98713.86568.9342.987 i=40i=40i+=2i+=2整理课件整理课件whilewhile语语语语句句句句中中中中的的的的表表表表达达达达式式式式一一一一般般般般是是是是关关关关系系系系表表表表达达达达或或或或逻逻逻逻辑辑辑辑表表表表达达达达式式式式,也也也也可可可可以以以以是是是是其其其其它它它它表表表表达达达达式式式式,只只只只要要要要表表表表达达达达式式式式的的的的值值值值为为为为真真真真( (非非非非0)0)即即即即可可可可继续继续继续继续循循循循环环环环。例例例例7.7.voidmain()voidmain()inta=0,n;inta=0,n;printf(“ninputn:”);printf(“ninputn:”);scanf(%d,&n);scanf(%d,&n);while(n-)while(n-)printf(%d,a+*2);printf(%d,a+*2);执执行行n次,每次,每执执行行1次,次,n减减1。(a*2(a*2;a+)a+)等价于等价于等价于等价于输输输输入入入入: 8: 8输输输输出出出出: 0 2 4 6 8 10 12 14: 0 2 4 6 8 10 12 14整理课件整理课件例例8.while和和do-while循循环环比比较较。voidmain()intsum=0,i;scanf(“%d”,&i);while(i=10)sum=sum+i;i+;printf(“sum=%d”,sum);dodosum=sum+i;sum=sum+i;i+;i+;while(i=10);while(i=10);输输输输入:入:入:入:8 8sumsumi i0 08 88 89 91717101027271111输输输输入:入:入:入:1111sum=0sum=0sum=11sum=11整理课件整理课件6.46.4 for for 语语句句代替代替while while 语语句句6.4.1形式:形式:for(表达式表达式1;表达式表达式2;表达式表达式3)语语句句要正确表达循要正确表达循环结环结构构应应注意注意三方面要求:三方面要求:1、循、循环环控制控制变变量的初始化。量的初始化。2、循、循环环的条件。的条件。3、循、循环环控制控制变变量的量的值值的更新的更新for语语句句在在书书写写形形式式上上集集中中体体现现了了这这三方面要求三方面要求整理课件整理课件6.4.2功能功能for语语句句完全可以取代完全可以取代while语语句句。for(表达式表达式1;表达式;表达式2;表达式;表达式3)语语句句它的它的执执行行过过程程如下:如下:1)先求解表达式)先求解表达式1。2)求求解解表表达达式式2,若若其其值值为为真真(非非0),则则执执行行for语语句句中中指指定定的的内内嵌嵌语语句句,然然后后执执行行第第3)步步;若若其其值值为为假假(0),则则结结束束循循环环,转转到第到第5)步。)步。3)求解表达式)求解表达式3。4)转转回第回第2)步)步继续执继续执行。行。5)循)循环结环结束,束,执执行行for语语句下面的一个句下面的一个语语句。句。整理课件整理课件(用用for语语句改写前面的句改写前面的例例2、例、例4、例、例5、例、例7)计计算表达式算表达式3语语句句当表达式当表达式2值值非零非零计计算表达式算表达式1整理课件整理课件例例例例2 2、求、求、求、求voidvoidmain()main()inti,sum=0;inti,sum=0;i=1;i=1;dosum+=i;i+;dosum+=i;i+;while(i=100);while(i=100);printf(%dn,sum);printf(%dn,sum);voidmain()voidmain()inti,sum=0;inti,sum=0;forfor(i=1;i=100;i+i=1;i=100;i+)sum+=i;sum+=i;printf(%dn,sum);printf(%dn,sum);整理课件整理课件例例例例44. .计计计计算算算算p=123np=123nvoidmain()voidmain()inti,n;longp;inti,n;longp;scanf(”%d”,&n);scanf(”%d”,&n); i=1;p=1;i=1;p=1;while(while(i=ni=n) )p*=ip*=i; ;i+i+;printf(”p=%ldn”,p);printf(”p=%ldn”,p); for(i=1,p=1;i=n;i+)for(i=1,p=1;i=n;i+)P*=i;P*=i;中中中中间间间间用逗号用逗号用逗号用逗号for(i=1,p=1;i=n;P*=i,i+)for(i=1,p=1;i0)s=1!+2!+3!+n!(n0)voidmain()voidmain()inti,n;longs,t;inti,n;longs,t;scanf(”%d”,&n);scanf(”%d”,&n); i=1;t=1;s=0;i=1;t=1;s=0;dodot*=i;s+=t;t*=i;s+=t;i+;i+;while(while(i=ni=n););printf(”s=%ldn”,s);printf(”s=%ldn”,s);for(i=1for(i=1, t=1t=1, s=0;i=n;i+)s=0;i=n;i+)t*=i;s+=t;t*=i;s+=t;整理课件整理课件例例例例77. .计计计计算算算算下下下下面面面面二二二二十十十十个个个个数数数数的的的的和和和和:13.813.8、-65-65、68.968.9、342.987342.987voidmain()voidmain()intint i=1i=1;floatx,sum=0;floatx,sum=0;while(i=20)while(i=20) scanf(”%f”,&x);sum+=x;scanf(”%f”,&x);sum+=x; i+;i+;printf(”sum=%fn”,sum);printf(”sum=%fn”,sum); forfor(i=1i=1;i=20i=20;i+i+)scanf(”%f”,&x);sum+=x; 整理课件整理课件 forfor语语语语句形式:句形式:句形式:句形式:for(for(循循循循环变环变环变环变量量量量赋赋赋赋初初初初值值值值;循;循;循;循环环环环条件;循条件;循条件;循条件;循环变环变环变环变量增量量增量量增量量增量) ) 语语语语句句句句 总总总总是一个是一个是一个是一个赋赋赋赋值语值语值语值语句句句句, , 它用它用它用它用来来来来给给给给循循循循环环环环控控控控制制制制变变变变量量量量赋赋赋赋初初初初值值值值总总总总是一个是一个是一个是一个表表表表达式达式达式达式, 它用来它用来它用来它用来判判判判别别别别循循循循环环环环是是是是否否否否终终终终止止止止定定定定义义义义循循循循环环环环控制控制控制控制变变变变量每循量每循量每循量每循环环环环一一一一次后按什么方次后按什么方次后按什么方次后按什么方式式式式变变变变化化化化这这这这三个部分之三个部分之三个部分之三个部分之间间间间用用用用“ “;” ”分开分开分开分开整理课件整理课件对对于于for循循环环中中语语句的一般形式,句的一般形式,for(表达式表达式1;表达式;表达式2;表达式;表达式3)语语句句就是如下的就是如下的while循循环环形式:形式: 表达式表达式1;while(表达式(表达式2)语语句句表达式表达式3;整理课件整理课件例例例例1.1.写出下面程序的写出下面程序的写出下面程序的写出下面程序的输输输输出出出出结结结结果果果果#include#includevoidmain()voidmain()charc;charc;for(;for(;(c=getchar()-#(c=getchar()-#;)putchar(c);)putchar(c);c c为为为为#,值为值为值为值为0 0,结结结结束束束束可以是任意表达式可以是任意表达式可以是任意表达式可以是任意表达式输输输输入:入:入:入: a56*3h#hj$a56*3h#hj$ 输输输输出:出:出:出: a56*3ha56*3h整理课件整理课件例例2.下面程序的下面程序的输输出出结结果是果是voidmain()intx=10,y=10,i;for(i=0;x8;y=+i)printf(”%3d%3d”,x-,y);A10192B9876C101091D10990表达式表达式表达式表达式1 1只做一次只做一次只做一次只做一次x xy y101010109 91 18 8C2 2整理课件整理课件注意注意:1 1)forfor循循循循环环环环中中中中的的的的“表表表表达达达达式式式式1 1”、“表表表表达达达达式式式式2(2(循循循循环环环环条条条条件件件件) )”和和和和“表达式表达式表达式表达式3 3” 可以缺省可以缺省可以缺省可以缺省, ,但但但但“;”不能缺省。不能缺省。不能缺省。不能缺省。2 2)省省省省略略略略了了了了“ “表表表表达达达达式式式式1 1”, ,表表表表示示示示不不不不对对对对循循循循环环环环控控控控制制制制变变变变量量量量赋赋赋赋初初初初值值值值, ,可在可在可在可在forfor循循循循环环环环里面或外面里面或外面里面或外面里面或外面对对对对其其其其赋赋赋赋初初初初值值值值。例如例如例如例如:i=1;i=1; forfor(;i=20;i+;i=20;i+) scanf(”%f”,&x);sum+=x;scanf(”%f”,&x);sum+=x; 3 3)省略)省略)省略)省略“ “表达式表达式表达式表达式2 2”, ,则则则则不做其它不做其它不做其它不做其它处处处处理理理理时时时时成成成成为为为为死循死循死循死循环环环环。例如:例如:例如:例如:for(i=1;i+)sum=sum+i;for(i=1;i+)sum=sum+i;相当于:相当于:相当于:相当于: i=1;i=1;while(1)while(1)sum=sum+i;sum=sum+i;i+;i+;整理课件整理课件4)省省略略了了“表表达达式式3(循循环环变变量量增增量量)”,则则不不对对循循环环控控制制变变量量进进行行操操作作,这这时时可可在在语语句句体体中中加加入修改循入修改循环环控制控制变变量的量的语语句句。例如:例如:for(i=1;i=100;)sum=sum+i;i+;整理课件整理课件5)省略了)省略了“表达式表达式1”和和“表达式表达式3”。例如:例如:for(;i=100;)sum=sum+i;i+;相当于:相当于:while(i=100)sum=sum+i;i+;整理课件整理课件6)3个表达式都可以省略。个表达式都可以省略。例如:例如:for(;)语语句句相当于:相当于:while(1)语语句句7)表表达达式式1可可以以是是设设置置循循环环变变量量的的初初值值的的赋值赋值表达式,也可以是其他表达式。表达式,也可以是其他表达式。例如:例如:for(sum=0;i=100;i+)sum=sum+i;整理课件整理课件8 8)表表表表达达达达式式式式1 1和和和和表表表表达达达达式式式式3 3可可可可以以以以是是是是一一一一个个个个简简简简单单单单表表表表达达达达式式式式也也也也可可可可以以以以是逗号表达式。是逗号表达式。是逗号表达式。是逗号表达式。for(sum=0,i=1;i=100;i+)sum=sum+i;for(sum=0,i=1;i=100;i+)sum=sum+i;或:或:或:或:for(i=0,j=100;i=100;i+,j-)k=i+j;for(i=0,j=100;iy+z)1.while(xy+z)for(k=1;k2;k+)for(k=1;k2;k+)if if (a5)w=1;(a5)w=1;elseelseifif(a=5)(a=5)switchswitch结结结结构构构构elseelse for(s=0,n=0;n3;n+)s+=n;for(s=0,n=0;n3;n+)s+=n; 整理课件整理课件6.6 6.6 breakbreak语语句和句和continuecontinue语语句句switch结结构中的构中的break:提前:提前结结束束该结该结构构循循环结环结构中的构中的break:提前:提前结结束束该结该结构构(while循循环环、do-while循循环环、for循循环环)循循环结环结构中的构中的continue:提前:提前结结束束本次循本次循环环若在多若在多若在多若在多层层层层嵌套中使用嵌套中使用嵌套中使用嵌套中使用breakbreak或或或或continue,continue,它只影响包含它它只影响包含它它只影响包含它它只影响包含它的最内的最内的最内的最内层结层结层结层结构构构构整理课件整理课件整理课件整理课件例例例例1.1.写出以下程序的运行写出以下程序的运行写出以下程序的运行写出以下程序的运行结结结结果:果:果:果:voidmain()voidmain()intn;intn;for(n=1;n=10;n+)for(n=1;n=10;n+)if(n%3=0)if(n%3=0)breakbreak;printf(“%4d”,n);printf(“%4d”,n);printf(“!n”);printf(“!n”);voidmain()voidmain()intn;intn;for(n=1;n=10;n+)for(n=1;n=10;n+)if(n%3=0)if(n%3=0)cotinuecotinue;printf(“%4d”,n);printf(“%4d”,n);printf(“!n”);printf(“!n”);结结结结果:果:果:果:12!12! 结结结结果:果:果:果:12457810!12457810!整理课件整理课件例例例例2.2.把把把把100200100200之之之之间间间间的不能被的不能被的不能被的不能被3 3整除的数整除的数整除的数整除的数输输输输出。出。出。出。#include#includevoidmain()voidmain()intint n;n;for(n=100;n=200;n+)for(n=100;n=200;n+) if(n%3=0)if(n%3=0)continue;continue;printf(”%d”,n);printf(”%d”,n); printf(”n”);printf(”n”); 能被能被能被能被3 3整除,整除,整除,整除,则进则进则进则进行行行行下一次循下一次循下一次循下一次循环环环环整理课件整理课件例例例例3.3.计计计计算算算算下下下下面面面面若若若若干干干干个个个个数数数数的的的的和和和和:13.813.8、-65-65、68.968.9、342.987342.987,并,并,并,并统计统计统计统计个数(个数个数(个数个数(个数个数(个数100100)#include#includevoidmain()voidmain()intint i=1i=1;floatx,sum=0;floatx,sum=0;while(i=100)while(i=100)scanf(”%f”,&x);scanf(”%f”,&x);if(fabs(x-1e36)0.0001)break;if(fabs(x-1e36)0.0001)break;sum+=x;sum+=x;i+;i+;printf(”sum=%f,count=%dn”,sum,printf(”sum=%f,count=%dn”,sum,);); 注:注:注:注:执执执执行程序行程序行程序行程序时输时输时输时输入入入入 13.86568.9342.98713.86568.9342.987 1e361e36 求求求求绝对值绝对值绝对值绝对值, ,理理理理论论论论上相上相上相上相等等等等, ,实际实际实际实际上有上有上有上有误误误误差差差差位置位置位置位置不能不能不能不能错错错错i-1整理课件整理课件例例例例4.voidmain()4.voidmain()intkintk,j j,x=0x=0;for(k=1for(k=1;k=4k=4;k+)k+)x+x+;if(k%3=0)breakif(k%3=0)break;for(j=kfor(j=k;j=5j=5;j+)x+j+)x+;x+x+; printf(”%dn”printf(”%dn”,x)x);结结果果?14k kj jx x1 11 11 12 22 23 33 34 44 45 55 56 67 72 28 82 29 93 310104 411115 5121213133 31414 整理课件整理课件程序程序举举例例整理课件整理课件例例1:输输出出101000中所有十位数中所有十位数为为3的数的数 void main()inti;for(i=10;i=1000;i+)if(i/10%10=3)printf(“%5d”,i);如如如如:i=1234:i=1234i/10=123i/10=123整数整数整数整数123%10=3123%10=3if(i/10%10i/10%103)continue;printf(“%5d”,i);整理课件整理课件例例2:voidmain()intk;for(k=2;k=10;k+=3)printf(”%4d”,k);printf(”%4d”,k);运行结果: 25811整理课件整理课件例例3:voidmain()voidmain()intk,j=99;intk,j=99;for(k=1;k=2;k+)for(k=1;k=2;k+)printf(”(1)%d,5dn”,k,jprintf(”(1)%d,5dn”,k,j););for(j=5;j=7;j+)for(j=5;j=7;j+)printf(”(2)%d,5dn”,k,j);printf(”(2)%d,5dn”,k,j);printf(”(3)%d,5dn”,k,j);printf(”(3)%d,5dn”,k,j); printf(”(4)%d,5dn”,k,j);printf(”(4)%d,5dn”,k,j); 第一遍第一遍第一遍第一遍k kj j(1)(1)1 19999(2)(2)1 15 5(2)(2)1 16 6(2)(2)1 17 7(3)(3)1 18 8第二遍第二遍第二遍第二遍k kj j(1)(1)2 28 8(2)(2)2 25 5(2)(2)2 26 6(2)(2)2 27 7(3)(3)2 28 8(4)(4)3 38 8整理课件整理课件例例4:voidmain()voidmain()inti,j,k;inti,j,k;printf(ijkn);printf(ijkn);for(i=0;i2;i+)for(i=0;i2;i+)for(j=0;j2;j+)for(j=0;j2;j+)for(k=0;k2;k+)for(k=0;k2;k+)printf(printf(“%d%d%dn,i,j,k);%d%d%dn,i,j,k);i ij jk k0 0000 00 0001 10 0110 00 0111 11 1000 01 1001 11 1110 01 1111 11 12 21 12 21 12 2整理课件整理课件例例5:输输出出100200中所有素数中所有素数m是素数是素数:m不被不被2、3、4、m-1中任一个整除中任一个整除结结果:果:101 103 107 109 113 127 131 137 139 149101 103 107 109 113 127 131 137 139 149151 157 163 173 173 179 181 191 193 197151 157 163 173 173 179 181 191 193 197199199 整理课件整理课件执执行行m=11m=11;m=m=1515;k=m-1;k=m-1;k=m-1;k=m-1;for(i=2;i=k;i+)for(i=2;i=k;i+)for(i=2;i=k;i+)for(i=2;ikikikik结结结结束束束束forfor循循循循环环环环k ki im%im%i3 32 21 13 30 0m%i=0m%i=0breakbreak整理课件整理课件voidmain()voidmain()intm,i,k;intm,i,k;for(m=100;m=200;m+)for(m=100;m=200;m+)k=m-1;k=m-1;for(i=2;i=k;i+)for(i=2;i=k;i+)if(m%i=0)break;if(m%i=0)break;if(i=k)if(i=k)printf(printf(“%disnotaprimenumbern%disnotaprimenumbern”,m);,m);elseelseprintf(printf(“%disaprimenumbern%disaprimenumbern”,m);,m); 只要有一个整除只要有一个整除只要有一个整除只要有一个整除, ,后面无需判断后面无需判断后面无需判断后面无需判断, ,强强强强迫循迫循迫循迫循环结环结环结环结束束束束此此此此时时时时i=kik,ik说说说说明都不能整除明都不能整除明都不能整除明都不能整除整理课件整理课件改改为输为输入一个数入一个数,判断是否判断是否为为素数素数.m-1m-1整理课件整理课件#include#includevoidmain()voidmain()intm,i,k;intm,i,k;scanf(scanf(“%d%d”,&m);,&m);k=m-1;k=m-1;for(i=2;i=k;i+)for(i=2;i=k)if(i=k)printf(printf(“%disaprimenumbern%disaprimenumbern”,m);,m);elseelseprintf(printf(“%disnotaprimenumbern%disnotaprimenumbern”,m);,m);输输输输入入入入:3:3输输输输入入入入:6:6整理课件整理课件例例6:输输出所有由出所有由1、2、3组组成的三位数成的三位数111211311112212312113213313121221321122222322123223323131231331132231332133233333整理课件整理课件voidmain()inti,j,k;for(i=1;i=3;i+)for(j=1;j=3;j+)for(k=1;k=3;k+)printf(“%d%d%d,”,i,j,k);%d%d%d没有空格和逗号没有空格和逗号起分隔符起分隔符起分隔符起分隔符作用作用作用作用i ij jk k1 11 11 11 11 12 21 11 13 31 12 21 11 1222 21 1223 31 13 31 11 13 32 21 13 33 32 21 11 11 12 2整理课件整理课件上面改上面改为为不出不出现现重复数字的三位数重复数字的三位数 voidmain()inti,j,k;for(i=1;i=3;i+)for(j=1;j=3;j+)for(k=1;k=3;k+)if(i!=j&j!=k&k!=i)print(“%d%d%d”,i,j,k);整理课件整理课件上面改上面改为为不出不出现现重复字母重复字母的由的由X、Y、Z组组成成的三个子符的字符串的三个子符的字符串 voidmain()inti,j,k;for(i=X;i=Z;i+)for(j=X;j=Z;j+)for(k=X;k=Z;k+)if(i!=j&j!=k&k!=i)print(“%c%c%c”,i,j,k);与与与与intint一一一一样样样样整理课件整理课件例例例例7:7:P1216.15voidmain()voidmain()甲甲甲甲队队队队乙乙乙乙队队队队inti,j,k;inti,j,k;XAXA for(i=X;i=Z;i+)for(i=X;i=Z;i+)YBYBfor(j=X;j=Z;j+)for(j=X;j=Z;j+)ZCZC for(k=X;k=Z;k+)for(k=X;k=Z;k+)if(i!=j&j!=k&k!=iif(i!=j&j!=k&k!=i&i!=x&k!=x&k!=z&i!=x&k!=x&k!=z) )print(“print(“%cA,%cB,%c-C%cA,%cB,%c-C”,i,j,k);”,i,j,k); 输输输输出出出出:ZA,XB,YC:ZA,XB,YC整理课件整理课件例例例例8:8:用公式求用公式求。#include#includevoidmain()voidmain()ints;ints;floatn,t,pi;floatn,t,pi;t=1;pi=0;n=1.0;s=1;t=1;pi=0;n=1.0;s=1;while(fabs(t)1e-6)while(fabs(t)1e-6)pi=pi+t;pi=pi+t;n=n+2;n=n+2;s=-s;s=-s; t=s/n;t=s/n; pi=pi*4;pi=pi*4; printf(pi=%10.6fn,pi);printf(pi=%10.6fn,pi);整理课件整理课件例例9“斐波那契数列斐波那契数列”是意大利中世是意大利中世纪纪数学家列数学家列昂昂纳纳多多斐波那契以兔子繁殖斐波那契以兔子繁殖为为例子而引入的:例子而引入的:兔子在出生两个月后,一兔子在出生两个月后,一对对兔子每个月能生兔子每个月能生出一出一对对小兔子来。如果所有兔子都不死,那小兔子来。如果所有兔子都不死,那么一年以后可以繁殖多少么一年以后可以繁殖多少对对兔子?兔子?经过经过分析:分析:经过经过经过经过月数:月数:月数:月数:-0-1-2-3-4-5-6-7-0-1-2-3-4-5-6-7-兔子兔子兔子兔子对对对对数:数:数:数:-1-1-2-3-5-8-13-21-1-1-2-3-5-8-13-21-数字数字1,1,2,3,5,8,13,构成了一个构成了一个数列。数列。整理课件整理课件数字数字数字数字1 1,1 1,2 2,3 3,5 5,8 8,1313,有明有明有明有明显显显显的特点:的特点:的特点:的特点:前面相前面相前面相前面相邻邻邻邻两两两两项项项项之和,构成了后一之和,构成了后一之和,构成了后一之和,构成了后一项项项项。我我我我们们们们可以得到可以得到可以得到可以得到递递递递推公式如下:推公式如下:推公式如下:推公式如下:程序运行程序运行程序运行程序运行结结结结果果果果为为为为:1123112358132158132134558914434558914423337761098723337761098715972584418167651597258441816765整理课件整理课件voidmain()voidmain() inti,x1=1,x2=1;inti,x1=1,x2=1;for(i=1;i=10;i+)for(i=1;i=10;i+)/*/*每次生成并每次生成并每次生成并每次生成并输输输输出两出两出两出两项项项项,所以循,所以循,所以循,所以循环环环环1010次次次次*/*/printf(”%10d%10d”,x1,x2);printf(”%10d%10d”,x1,x2);if(i%2=0)printf(”n”);if(i%2=0)printf(”n”);/*/*当当当当i i为为为为偶数偶数偶数偶数时换时换时换时换行,即每四个数行,即每四个数行,即每四个数行,即每四个数换换换换行行行行*/*/x1=x1+x2;x1=x1+x2;x2=x2+x1;x2=x2+x1; 整理课件整理课件此课件下载可自行编辑修改,供参考!感谢您的支持,我们努力做得更好!
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号