《C++程序设计:第7章 三种循环结构》由会员分享,可在线阅读,更多相关《C++程序设计:第7章 三种循环结构(29页珍藏版)》请在金锄头文库上搜索。
1、1请将您的手机铃声请将您的手机铃声设置为震动设置为震动2作作 业业课本:课本:课本例课本例5.4 61页页课本例课本例5.5 61页页课后习题课后习题5.9 63页页PPT附加作业附加作业3复习回顾复习回顾while语句语句do_while语句语句for语句语句循环的嵌套循环的嵌套4三种循环结构三种循环结构while语句流程图语句流程图表达式表达式假假真真循环体循环体dowhile语句流程图语句流程图表达式表达式假假真真循环体循环体5三种循环结构三种循环结构表达式表达式2 循环体循环体假假真真表达式表达式1 表达式表达式3 6例一例一 用双重循环打印出如下运行结果用双重循环打印出如下运行结果
2、* * * *7#include stdio.hvoid main( ) int i,j; for(i=1;i=4;i+) for(j=1;j=i;j+) printf( ); for(j=1;j=5;j+) printf(*); printf(n); 例一例一 用双重循环打印出如下运行结果用双重循环打印出如下运行结果8 * * * * * * * * * *例二例二 打印出如下所示的等腰三角形打印出如下所示的等腰三角形9#include stdio.hvoid main() int i,j; for(i=1;i=5;i+) for(j=1;j=5-i;j+) printf( ); for(j
3、=1;jm) temp=n;n=m;m=temp; r=m*n; while(q=m%n)!=0) m=n;n=q; printf(%dt,%dn,r/n,n);例三例三12例四例四 有十个人投选票给有十个人投选票给Candy、Tiger、 Gwen三名班长侯选人,编写程序三名班长侯选人,编写程序 计算出三人得票数。计算出三人得票数。程序分析:程序分析: 1. 循环次数已知,适合用循环次数已知,适合用for循环。循环。 2. 对离散值处理,适合用对离散值处理,适合用switch结构。结构。13例四例四#include stdio.hvoid main() int c=0,t=0,g=0,i;
4、char x; for(i=1;i=10;i+) scanf(%c,&x); switch(x) case c: c+;break; case t: t+;break; case g: g+;break; printf(c=%d,t=%d,g=%d,c,t,g);14循环的中断与转移循环的中断与转移 v循环中断循环中断形式:形式:break;作用:作用:跳出当前循环体,中断当前循环跳出当前循环体,中断当前循环v循环转移循环转移形式:形式:continue;作用:作用:结束本次循环,转入循环条件判断结束本次循环,转入循环条件判断15例五例五 输出圆面积输出圆面积,面积大于面积大于100时停止时停
5、止#define PI 3.14159void main() int r; double area; for(r=1;r100) break; printf(r=%d,area=%lfn,r,area); if(area100) break;16例六例六 求输入整数中正数个数及总和求输入整数中正数个数及总和#include stdio.hvoid main() int i,a,num=0,sum=0; for(i=1;i=10;i+) scanf(%d,&a); num+; sum+=a; printf(plus number:%dn,num); printf(sum is:%dn,sum);
6、if(a=0) continue;17提示:提示:判断整数判断整数x是否为素数,最简单的方是否为素数,最简单的方法就是用法就是用2到到x-1之间的所有整数逐一去除之间的所有整数逐一去除x,若若x能被其中任意一个数整除,则能被其中任意一个数整除,则x就不是素就不是素数,否则就为素数。数,否则就为素数。 例七例七 判断一个整数是否为素数判断一个整数是否为素数18#include math.h 课本课本61页例页例5.5void main() int k,n,i; scanf(%d,&n); k=(int)sqrt(n); for(i=2;ik) printf(%3d is a prime!n,n)
7、; else printf(%3d isnt prime!n,n);例七例七19提示:提示:Fibonacci数列的特点是第一、二次项数列的特点是第一、二次项的值都为的值都为1,从第三项开始,每一项都是前两,从第三项开始,每一项都是前两项之和。项之和。 例八例八 计算计算Fibonacci数列的前数列的前20项项 1, 1, 2, 3, 5, 8, 1320#include math.h 课本课本63页作业页作业5.9 main( ) int i,f1=1,f2=1; for(i=1;i=10;i+) printf(%dt%dt,f1,f2); f1=f1+f2; f2=f1+f2; 例八例八
8、 计算计算Fibonacci数列的前数列的前20项项 21例:例:scanf(%d,%d,&a,&b); 输入格式为:输入格式为:1234,567 则则 a=1234 b=56&格式数据的输入格式数据的输入scanf(%d,%c, &x,&y);例:例:long a; double b; scanf(%ld,%lf, &a,&b);实型数据输入时不允许用精度控制实型数据输入时不允许用精度控制输入格式必须一致输入格式必须一致例:例:float a; scanf(%5.2f, &a);变量输入类型必须变量输入类型必须 与定义一致与定义一致数据输入与输出数据输入与输出例例: scanf(x=%d,y
9、=%d,&x,&y); 输入格式为:输入格式为:x=3,y=4例例: scanf(%d %d,&a,&b); 输入格式为:输入格式为: 1234 567 则则 a=1234 b=56例例: scanf(%c %c,&c1,&c2); 输入格式为:输入格式为: # 则则 c1=# c2=格式控制串末尾不允许加换行符格式控制串末尾不允许加换行符例:例:float a; scanf(%fn, &a);22例:例:scanf(%2d%*3d%2d, &a,&b); 输入输入 1234567 则则 a=12, b=67v 标准格式输入函数标准格式输入函数(P36)例:例:scanf(%4d%2d, &a
10、, &b); 输入输入 1234567 则则 a=1234 b=56修饰符修饰符说明说明m指定输入数据的宽度指定输入数据的宽度*指定输入项读入后不赋给变量指定输入项读入后不赋给变量 l指定指定long型或型或double型数据型数据23 .n对实数对实数,指定小数点后位数指定小数点后位数(四舍五入四舍五入)对字符串对字符串,指定实际输出位数指定实际输出位数修饰符修饰符功功 能能m输出数据域宽输出数据域宽,数据长度数据长度m,左补空格左补空格;否则按实际输出否则按实际输出输出数据在域内左对齐输出数据在域内左对齐(缺省右对齐缺省右对齐)-& 标准格式输出函数标准格式输出函数printf(%d,%c
11、, x,y);24修饰符修饰符功功 能能v 标准格式输出函数标准格式输出函数(P32)指定在有符号数指定在有符号数的正数前显示正号的正数前显示正号(+)+输出数值时指定左面不使用的空位置输出数值时指定左面不使用的空位置自动填自动填00在在八进制和十六进制数前显示八进制和十六进制数前显示0,0x#在在d,o,x,u前,指定输出精度为前,指定输出精度为long型型在在e,f,g前,指定输出精度为前,指定输出精度为double型型 l25#include stdio.hvoid main() int i=1234,j=047; long k=123456; unsigned v=65535; pri
12、ntf(%d,%2d,%6d,%-6d,%06dn,i,i,i,i,i); printf(%d,%#o,%#x,%8ldn,j,j,j,k); printf(%u,%4u,%08dn,v,v,v);作业问题一作业问题一65535,65535,00065535输出输出一个十进一个十进制无符号整数制无符号整数输出输出无符号的无符号的八进制整数八进制整数输出数据在域内左输出数据在域内左对齐(缺省右对齐对齐(缺省右对齐)输出输出无符号的无符号的十六进制整数十六进制整数1234,1234, 1234,1234 ,001234在八进制和十六在八进制和十六进制数前显示前进制数前显示前导符导符0,0x输出数值
13、时指输出数值时指定左面的空格定左面的空格位置自动填位置自动填0在在d,o,x,u前,指定前,指定输出精度为输出精度为long型型39,047,0x27, 12345626#include stdio.hvoid main() float x=123.4567,y=123.456789; char g=#,w=programming; printf(%-7.1f,%+7.1f,%.5fn,x,x,x); printf(%15s, %11.7sn,w,w); printf(ASCII(%c)=%dn,g,g);总宽度为总宽度为11,只,只输出前输出前7个字母,个字母,其余位置为空格其余位置为空格指
14、定在有符号指定在有符号数数的正数前显的正数前显示正号示正号(+)ASCII(#)=35总的宽度为总的宽度为7小数点后小数点后1位位 programming, program123.5 , +123.5, 123.45670作业问题二作业问题二27#includemain() char c; c=getchar(); printf(c1=%dn, c); putchar(c);putchar(1); putchar(=);putchar(c); putchar(n);(实验教程实验教程32页页4)作业问题三作业问题三28 设今天是设今天是20世纪的某一天,并以三位世纪的某一天,并以三位整数表示今天的年整数表示今天的年(yead)、月、月(month)、日、日(day),请编写程序,输入今天的日期,计,请编写程序,输入今天的日期,计算并报告明天的日期。算并报告明天的日期。附加作业一附加作业一29 四人中有一人做了好事,有下面一段四人中有一人做了好事,有下面一段对话,已知有三人说了真话,判断是谁做对话,已知有三人说了真话,判断是谁做的好事的好事: A: 不是我不是我; B: 是是C; C: 是是D; D: 他胡说。他胡说。附加作业二附加作业二