您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C语言程序设计教程第6章
第6章循环结构程序设计6.1while语句图6.1while循环语句的流程#includestdio.hvoidmain(){inti,sum=0;/*sum用于累加并赋初值0*/i=1;while(i=100){sum=sum+i;i++;}printf(sum=%d\n,sum);}循环结构程序设计77第6章i=1;sum=0当i=100sum=sum+i;i=i+1输出sum的值i=1;p=1;当i=np=p*i;i=i+1;输出p的值输出n值图6.2求1~100的和图6.3求n的阶乘#includestdio.hvoidmain(){unsignedlongp=1;/*p用于累积,初值为1*/inti=1,n;printf(Inputn:);scanf(%d,&n);while(i=n){p=p*i;i++;}printf(%d!=%ld\n,n,p);}运行结果如下:Inputn:5↙5!=120输出m,nab真假交换a,ba=n;b=m;当b!=0t=a%b;a=b;b=t;输出最大公约数:a输出最小公倍数:n*m/a图6.4求最大公约数与最小公倍数#includestdio.hvoidmain(){intm,n,a,b,t;C语言程序设计教程78printf(输入两个正整数:);scanf(%d,%d,&m,&n);a=n;b=m;if(ab){t=a;a=b;b=t;}while(b!=0){t=a%b;a=b;b=t;}printf(它们的最大公约数为:%d\n,a);printf(它们的最小公倍数为:%d\n,n*m/a);}6.2do-while语句图6.5do-while循环语句的流程/*程序一,用while循环语句求和*/#includestdio.hvoidmain(){inti,sum=0;scanf(%d,&i);while(i=10){sum=sum+i;i++;}printf(sum=%d\n,sum);}循环结构程序设计79第6章/*程序二,用do-while循环语句求和*/#includestdio.hvoidmain(){inti,sum=0;scanf(%d,&i);do{sum=sum+i;i++;}while(i=10);printf(sum=%d\n,sum);}t=1.0,pi=0,n=1.0,s=1.0pi=pi+t;pi=pi*4;输出pin=n+2;s=–s;t=s/n;当︱t︱=10–6时图6.6求π的近似值#includestdio.h#includemath.hvoidmain(){doublen,t,pi,s;/*n为一项的分母,t存储一项的值,s为正负号(1或-1)*/t=1.0;pi=0;n=1.0;s=1.0;do{pi=pi+t;/*将每一项t累加至pi中*/n=n+2;/*下一项的分母加2*/s=-s;/*改变下一项符号*/t=s/n;/*求出下一项的值赋给t*/}while(fabs(t)=1e-6);pi=pi*4;printf(pi=%10.6f\n,pi);}6.3for语句C语言程序设计教程80图6.7for语句的执行过程#includestdio.h#includemath.hvoidmain(){intn,i,k,flag;/*flag用作n是否为素数的标识*/printf(输入一个自然数:);scanf(%d,&n);flag=1;/*先设n为素数*/k=sqrt(n);/*sqrt为求n的平方根函数,所在头文件为math.h*/for(i=2;i=k;i++){if(n%i==0)/*当数i能够整除n时,即可判断n不是素数时*/{flag=0;i=k+1;}/*给flag标识赋0,并修改i值以结束循环*/}if(flag)/*flag未发生改变,其值仍为1,即i~k中的数都不能整除n时*/printf(%d是素数。\n,n);elseprintf(%d不是素数。\n,n);}#includestdio.hvoidmain(){longintf1,f2,f3;inti;f1=1;f2=1;循环结构程序设计81第6章printf(%12ld%12ld,f1,f2);for(i=3;i=20;i++){f3=f1+f2;printf(%12ld,f3);if(i%4==0)printf(\n);/*控制每行输出4项*/f1=f2;f2=f3;}}6.4循环嵌套#includestdio.hvoidmain(){intk,i,j;for(i=0;i=3;i++){for(k=1;k=i;k++)printf();/*双引号内为一空格字符*/for(j=0;j=5;j++)printf(*);printf(\n);}}#includestdio.hvoidmain(){inti,j;floatscore,sum,average;for(i=1;i=5;i++){sum=0;/*sum用于求每名学生的总成绩,其初值为0*/for(j=1;j=4;j++){scanf(%f,&score);sum+=score;}average=sum/4;printf(No.%daverage=%6.2f\n,i,average);}}C语言程序设计教程826.5break语句和continue语句6.5.1break语句#includestdio.hvoidmain(){inti,p=1;for(i=1;;i++){p=p*i;if(p4000)break;printf(%d!=%d\n,i,p);}}#includestdio.h#includemath.hvoidmain(){intn,i,k,flag;for(n=3;n=100;n++){flag=1;k=sqrt(n);for(i=2;i=k;i++)if(n%i==0){flag=0;break;}if(flag)printf(%5d,n);}}6.5.2continue语句#includestdio.hvoidmain(){intn;for(n=100;n=200;n++){if(n%3)continue;printf(%d,n);循环结构程序设计83第6章}}#includestdio.hvoidmain(){intn;for(n=1;n=10;n++){if(n==5)break;printf(%d,n);}printf(\n);for(n=1;n=10;n++){if(n==5)continue;printf(%d,n);}printf(\n);}6.6goto语句#includestdio.hvoidmain(){inti=1,sum=0;loop:sum+=i;i++;if(i=100)gotoloop;printf(sum=%d\n,sum);}习题6inti,j,m=0;for(i=1;i=15;i+=4)C语言程序设计教程84for(j=3;j=19;j+=4)m++;printf(%d\n,m);intn=10;while(n7){n--;printf(%d\n,n);}intx=3;do{printf(%3d,x-=2);}while(!(--x));#includestdio.hvoidmain(){inti;for(i=l;i=5;i++){if(i%2)printf(*);elsecontinue;printf(#);}printf($\n);}#includestdio.hvoidmain(){intx=2;while(x--);循环结构程序设计85第6章printf(%d\n,x);}
本文标题:C语言程序设计教程第6章
链接地址:https://www.777doc.com/doc-2908223 .html