版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目五循环结构程序设计第一讲循环的概述C语言程序设计任务驱动式教程循环结构控制语句循环的概述while循环语句do-while循环语句for循环语句目录循环应用问题导入987771号:总分31分8762号:总分28分▲评委亮分▲计算总分
在某一条件成立的情况下反复做重复性的事情,这就是循环。某大赛重复的事情有:循环的概述任务一如何用程序设计语言来描述大赛问题呢?inti=1;设i为评委编号,整型,初始值为1设score存评委分数,sum存总分并设初值为0.0,均为浮点型doublescore,sum=0.0;在
i<=4的条件下反复执行如下操作:scanf("%lf",&score);播报(输入)当前评委亮出的分数scoresum+=score; 累加到总分sumi++;评委编号递增1⑴变量定义⑵算法描述循环的概述任务一⑶每次循环要做什么,即“反复执行的语句”,称为“循环体”。⑴循环从什么时候开始,即“循环变量初值”。⑵满足什么条件要循环,即“循环控制条件表达式”。i=1;i<=4scanf("%lf",&score);sum+=score;i++;循环变量初值循环控制条件表达式循环体循环结构三要素【概括大赛问题】循环的概述任务一⑶减少源代码的存储空间,提高程序质量。⑴可重复执行某些相同代码的程序段;⑵将程序员从大量重复编写相同代码的工作中解放出来,提高程序编写效率;循环的本质【循环结构的任务】技能实训
在循环结构程序设计中,反复执行的语句称之为()A.循环语句B.循环体C.循环控制语句2.在循环结构程序中,当循环条件为“真”时()A.终止循环结构的执行B.执行循环体语句3.循环结构的使用,可以将程序员从大量重复编写相同代码的工作中解放出来,提高程序的A.编写效率B.执行效率练一练技能实训任务二BBA学习总结答一答任务二学习总结【问题1】循环结构三要素?
【问题2】循环结构的任务:感谢观看!项目五循环结构程序设计第二讲while循环语句C语言程序设计任务驱动式教程循环结构控制语句循环的概述while循环语句do-while循环语句for循环语句目录循环应用问题导入while语句在C语言中重复操作可以用什么语句实现呢?有一小泳池,用水桶向其中倒水,第一次倒1桶水,第2次倒2桶水,第3次倒3桶水……,10次之后,一共向其中倒了多少桶水?while循环语句任务二while(表达式){
循环体;}【一般格式】
循环控制条件表达式由一条或多条语句组成,当“循环体”仅有一条语句时,可省略“{}”。表达式真?循环体真(非0)假(0)【流程图】此处不需要‘;‘while循环语句任务二
关于表达式
while(6)
……while(x<=60)
……while(x<0||x>100)
……算术表达式关系表达式逻辑表达式常用while循环语句任务二【语句说明】
1)while语句属当型循环,即先判断条件(表达式),再执行循环体。循环体可为任意类型语句,循环体有可能一次也不执行(条件一开始就不成立)。
2)表达式为循环条件,用于控制循环是否可继续执行,故称控制表达式。
3)循环体语句为内嵌式语句,是循环结构的循环体。它可以是单语句也可以是复合语句,且该语句中必须包含有对循环条件进行修改的语句。
4)无限循环:while(1)
循环体;while循环语句任务二⑶每次循环要做什么,即“反复执行的语句”,称为“循环体”。⑴循环从什么时候开始,即“循环变量初值”。⑵满足什么条件要循环,即“循环控制条件表达式”。i=1;i<=10scanf("%lf",&score);sum+=score;i++;循环变量初值循环控制条件表达式循环体循环结构三要素【概括大赛问题】利用while语句计算大赛选手总分。(有10位评委)while循环语句-示例任务二利用while语句计算大赛选手总分。(有10位评委)#include<stdio.h>voidmain(){
double
score,sum=0;
inti=1;
while(i<=10)
{printf("请第%d位评委亮分:",i);scanf("%lf",&score);sum=sum+score;i++;
}printf(“该选手的总分为:%.2lf.\n",sum);}循环控制条件循环体源程序while循环语句-应用任务二使用while语句如何实现呢?有一小泳池,用水桶向其中倒水,第一次倒1桶水,第2次倒2桶水,第3次倒3桶水……,10次之后,一共向其中倒了多少桶水?while循环语句任务二
应用使用while语句,编程计算:1+2+3+……+10=?(4)循环体如何设计?(2)循环初值设什么?(3)循环条件如何设计?【分析】(1)循环变量设什么?ii=1i<=10sum+=i;
i++;设sum为求和变量,sum=0“循环条件”成立执行“循环体”若第一次倒3桶水,以后每一次增加1桶水,如何修改程序?
思考while循环语句任务二流程图定义变量i=1,sum=0i<=10?sum+=i;i++;真(非0)假(0)开始输出sum值结束
应用使用while语句,编程计算:1+2+3+……+10=?while循环语句任务二#include<stdio.h>voidmain(){
int_____;
int_______;
while(_______)
{sum=________;______;
}printf(“10次倒入水的总数为::%5d.\n",sum);}
应用使用while语句,编程计算:1+2+3+……+10=?源程序while循环语句任务二#include<stdio.h>voidmain(){
intsum=0;
inti=1;
while(i<=10)
{sum=sum+i;i++;
}printf(“10次倒入水的总数为::%5d.\n",sum);}
应用使用while语句,编程计算:1+2+3+……+10=?源程序技能实训利用while语句编程并绘制流程图:计算1~n中的奇数之和及偶数之和。练一练技能实训任务二【分析】⑴n的值在程序执行时通过键盘输入⑵各变量初值如何设计?⑷循环变量增量如何设计?⑶循环条件如何设计?技能实训任务二利用while语句计算1~n中的奇数之和及偶数之和。#include<stdio.h>intmain(){int______,_____;
int______,_______;
printf(“___________");
scanf("%___",&____);
while(______)
{if(_______)
{_______;
_________;}else
{__________;
______;}}printf("偶数数之和为:%d,奇数之和为:%d\n",sum1,sum2);return0;}开始结束定义变量并赋初n,i=1,sum1=0,sum2=0
sum2+=i;
i++;i<=ni%2==0sum1+=i;
i++;输入n的值输出偶数和sum1,奇数sum2yynn技能实训任务二利用while语句计算1~n中的奇数之和及偶数之和。#include<stdio.h>intmain(){inti=1,n;intsum1=0,sum2=0;printf("请输入n的值:");scanf("%d",&n);while(i<=n){if(i%2==0) {sum1+=i; i++;}else {sum2+=i; i++;}}printf("偶数数之和为:%d,奇数之和为:%d\n",sum1,sum2);return0;}开始结束定义变量并赋初n,i=1,sum1=0,sum2=0
sum2+=i;
i++;i<=ni%2==0sum1+=i;
i++;输入n的值输出偶数和sum1,奇数sum2yynn任务二技能实训【编程】使用while语句求出1~100以内所以能够被3整除的自然数,程序运行效果如下:#include<stdio.h>voidmain(){int______;printf("能够被3整出的有:\n");
while(________)
{if(_______) printf("____",____);
_______;
}printf("\n");}学习总结答一答任务二技能实训【编程】使用while语句求出100~200以内所以能够同时被3和7整除的自然数,程序运行效果如下:#include<stdio.h>voidmain(){intsum=0;inti=100;printf("能够被3整出的有:\n"); while(i<=200){if(i%3==0&&i%7==0) printf("%d",i);i++;}printf("\n");}学习总结答一答任务二技能实训【编程】使用while语句求出1~100以内所以能够被3整除的自然数,程序运行效果如下:#include<stdio.h>voidmain(){intsum=0;inti=1;printf("能够被3整出的有:\n"); while(i<=100){if(i%3==0) printf("%d",i);i++;}printf("\n");}学习总结答一答任务二学习总结【问题1】while语句的语法格式为:?【问题2】while语句的表达式可以是哪些形式?【问题3】while语句中循环条件与循环体的关系?学习总结答一答任务二学习总结【提示1】循环体的设计。遇到数列求和,求积的一类问题,一般可以考虑使用循环解决。累加:s=s+i;
累乘:s=s*i;
计数:i=i+1;【提示2】注意循环初值的设置。一般对于累加器常常设置为0,累乘器常常设置为1。循环控制变量初始、步长、终值设置。
s=0;i=1;while(i<=100){s=s+i;i++;}s=0;i=0;while(i<100){i++;s=s+i;}感谢观看!项目五循环结构程序设计第三讲do-while循环语句C语言程序设计任务驱动式教程循环结构控制语句循环的概述while循环语句do-while循环语句for循环语句目录循环应用问题导入987771号:总分31分762号:总分28分某表演大赛有七位评委评分,如何计算大赛选手的总分?如何实现循环结构呢?do…while语句do…while语句循环语句任务三do{
循环体;}while(表达式);【一般格式】
表达式后必须有;【流程图】表达式真?循环体真(非0)假(0)
说明当第1次判断“表达式”就为假时,“循环体”也执行1次,即4:“循环体”最少执行1次。do…while语句循环语句任务三
关于表达式
while(6)
……while(x<=60)
……while(x<0||x>100)
……算术表达式关系表达式逻辑表达式do…while语句循环语句任务三【语句说明】
(1)至少执行一次循环体
(2)do~while可转化成while结构do…while语句循环语句任务三(2)设score存放每位评委亮出的分数,sum存放总分,sum=0.0.(1)设i为循环变量初值。(3)
循环控制条件
:i=1i<=7scanf("%lf",&score);sum+=score;i++;(4)循环体为:【概括大赛问题】利用do…while语句计算大赛选手总分。(有7位评委)do…while语句循环语句-示例任务三利用do…while语句计算大赛选手总分。(有7位评委)#include<stdio.h>voidmain(){
double
score,sum=0.0;
inti=1;
do{printf("请第%d位评委亮分:",i);scanf("%lf",&score);sum=sum+score;i++;
}while(i<=7)printf(“该选手的总分为:%.2lf.\n",sum);}循环控制条件循环体源程序do…while语句循环语句-应用任务三使用do…while语句如何实现呢?利用do…while语句计算1+1/2+1/3+…+1/n。【提示】⑴n的值在程序执行时通过键盘输入⑵各变量的数据类型如何设计?⑶“1”与“1.0”有什么区别?
应用do…while语句循环语句-应用任务三流程图
应用利用do…while语句计算1+1/2+1/3+…+1/n?定义变量i=1,sum=0.0i<=n?Sum+=1.0/i;i++;真(非0)假(0)开始输出sum值结束输入n的值do…while语句任务三#include<stdio.h>voidmain(){float_____;int
______;
int
_______;printf(“____________");scanf(“____",&____);
do{_________;
________;}while(_______);printf("thesum=%f\n",sum);}
应用利用do…while语句计算1+1/2+1/3+…+1/n源程序do…while语句任务三#include<stdio.h>voidmain(){floatsum=0;inti=1;
intn;printf("请输入n的值:");scanf("%d",&n);
do{sum=sum+1.0/i;i++;}while(i<=n);printf("thesum=%f\n",sum);}
应用利用do…while语句计算1+1/2+1/3+…+1/n源程序while循环和do-while循环的比较任务三比较
whiledo-while(1)先判断条件再执行循环体
先执行循环体再判断条件(2)循环体可能一次也不执行至少执行一次循环体voidmian(){intsum=0,i;
scanf(“%d”,&i);while(i<=10){sum=sum+i;i++;}printf(”%d\n”,sum);}voidmian(){intsum=0,i;
scanf(“%d”,&i);do{sum=sum+i;i++;
}while(i<=10);printf(”%d\n”,sum);}若输入i值为11则输出:0若输入i值为11则输出:11技能实训统计一个整数的位数.提示:number=number/10;/*number整除10,即去掉最低位*/练一练技能实训任务三练一练技能实训任务三#include<stdio.h>intmain(){ int______,_________;
/*定义及初始化变量*/ printf(“____________");
/*输出提示语*/ scanf(“_____",&______);
/*输入整数*/ if(_______)
/*如果输入的为负整数则取反*/
___________; do{
___________;
/*number整除10,即去掉最低位*/
_______;
/*位数加1*/ }while(________);
/*number不为0时循环*/ printf("Itcontains%ddigits.\n",count); /*输出位数*/ return0;}统计一个整数的位数.练一练技能实训任务三#include<stdio.h>intmain(){ intcount=0,number; /*定义及初始化变量*/ printf("Enteranumber:"); /*输出提示语*/ scanf("%d",&number); /*输入整数*/ if(number<0) /*如果输入的为负整数则取反*/ number=-number; do{ number=number/10; /*number整除10,即去掉最低位*/ count++; /*位数加1*/ }while(number!=0); /*number不为0时循环*/ printf("Itcontains%ddigits.\n",count); /*输出位数*/ return0;}统计一个整数的位数.学习总结答一答任务三学习总结【问题1】do-while语句中,条件放在while后面的圆括号中,并且最后必须加上一个分号,这是很多初学者容易遗漏的。
【问题2】while语句先进行循环条件的判断,再决定是否执行循环体;do-while语句则先执行一次循环体,再进行循环条件的判断决定是否继续循环。do-while语句至少要执行一次循环体,而while语句在第一次条件判断不成立时,则一次循环体都不执行。http:///nodedetailcontroller/visitnodedetail?courseId=212796284&knowledgeId=326328906http:///course/212796284.html感谢观看!项目五循环结构程序设计综合三循环综合应用C语言程序设计任务驱动式教程导学【问题1】如何实现大写字母与小写字母的转换?【问题2】转义字符:\t、\b、\r、\n、\f分别具有什么含义?
思考【问题3】符号常量定义的一般格式为:?任务1:求给定整数的绝对值特别提示提出问题分析问题相关知识任务实施任务一求给定整数的绝对值-工作任务工作任务
百元百鸡问题
百元百鸡问题。我国古代数学家张丘键在《算经》中出了一道题:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?工作任务任务一求给定整数的绝对值-问题分析问题分析百元百鸡问题:设一百只鸡中公鸡、母鸡、小鸡分别为x,y,z,问题化为三元一次方程组。x、y、z为正整数,且z是3的倍数;由于鸡和钱的总数都是100。问题分析x、y、z的取值范围:⑴x的取值范围为1~20;⑵y的取值范围为1~33;⑶z的取值范围为3~99,步长为3。
(百钱)(百鸡)用穷举的方法,遍历x,y,z的所有可能组合,最后得到问题的解。任务一求给定整数的绝对值-任务实施任务实施百元百鸡问题请参照如下运行结果,编写程序。任务实施输出结果:公鸡
母鸡
小鸡418788118112484任务一求给定整数的绝对值-源程序#include<stdio.h>voidmain(){
intgongji,muji,xiaoji;
for(gongji=1;gongji<=20;gongji++)//公鸡可能的数量范围
{
for(muji=1;muji<=33;muji++)
//母鸡可能的数量范围
{
for(xiaoji=3;xiaoji<=100;xiaoji=xiaoji+3)//小鸡可能的数量范围
{
if((xiaoji/3+muji*3+gongji*5==100)&&(xiaoji+muji+gongji==100))
printf("%4d\t%4d\t%4d\n",gongji,muji,xiaoji);
}
}
}}输出结果:公鸡
母鸡
小鸡418788118112484任务一求给定整数的绝对值-工作任务工作任务四方定理验证四方定理,输入任意一个自然数,都可用四个数的平方和来表示。工作任务任务一求给定整数的绝对值-问题分析问题分析四方定理:可以定义变量n用来输入任意一个自然数,用变量i,j,k,l分别代表4个数,然后对四个变量i,j,k,l采用穷举试探的方法进行计算,当满足定理中的条件时输出计算结果并退出程序的执行。因此需要用四重循环来实现。问题分析任务一求给定整数的绝对值-任务实施任务实施验证四方定理,输入任意一个自然数,都可用四个数的平方和来表示。请参照如下运行结果,编写程序。任务实施任务一求给定整数的绝对值-源程序#include<stdio.h>intmain(){longi,j,k,l,n; /*定义变量为长整型*/
printf("请输入一个数:\n");
scanf("%ld",&n); /*输入n的值*/
for(i=0;i<=n;i++) /*对i,j,k,l进行穷举*/for(j=0;j<=i;j++) for(k=0;k<=j;k++) for(l=0;l<=k;l++) if(i*i+j*j+k*k+l*l==n) /*判断是否满足定理要求*/ { printf("%ld*%ld+%ld*%ld+%ld*%ld+%ld*%ld=%ld\n" ,i,i,j,j,k,k,l,l,n);/*将满足要求的结果输出*/ return0; /*函数返回值0,即退出程序的执行*/ }}任务一求给定整数的绝对值-工作任务工作任务简单计算器编写程序实现一个带有菜单并能够一直循环输入进行计算的简单计算器。工作任务任务一求给定整数的绝对值-问题分析问题分析简单计算器:
1)使用exit();和system();均需加头文件:#include<stdlib.h>exit(0);表示正常退出系统;system("cls");表示清屏。
2)for(;;)循环语句的条件默认为“1”,即永远为“真”,保证菜单始终显示。
3)使用getch();必须加头文件:#include<conio.h>4)getchar();//获得一个字符且显示
getch();//获得一个字符且不显示,起暂停的作用问题分析任务一求给定整数的绝对值-任务实施任务实施编写程序实现一个带有菜单并能够一直循环输入进行计算的简单计算器。请参照如下运行结果,编写程序。任务实施任务一求给定整数的绝对值-源程序编写程序实现一个简单的计算器。(用菜单设计)
#include<stdio.h>#include<stdlib.h>//exit()、system()#include<conio.h>//getch()voidmain(){floatnum1,num2,result;intch;charop;for(;;)//永远为"真"{system("cls");//清屏
printf("-------------------------------------------\n");printf("|菜单选择v1.1|\n");printf("-------------------------------------------\n");printf("|1.加法|\n");printf("|2.减法|\n");printf("|3.乘法|\n");printf("|4.除法|\n");printf("|0.退出|\n");printf("-------------------------------------------\n");printf("请选择(0~4):");scanf("%d",&ch);switch(ch){case1:printf("加法!");
printf("输入(第一个数、运算符、第二个数):");scanf("%f%c%f",&num1,&op,&num2);result=num1+num2;printf("%.2f%c%.2f=%.2f\n",num1,op,num2,result);break;case2:printf("减法!");printf("输入(第一个数、运算符、第二个数):");scanf("%f%c%f",&num1,&op,&num2);result=num1-num2;printf("%.2f%c%.2f=%.2f\n",num1,op,num2,result);break;case3:printf("乘法!");printf("输入(第一个数、运算符、第二个数):");scanf("%f%c%f",&num1,&op,&num2);result=num1*num2;printf("%.2f%c%.2f=%.2f\n",num1,op,num2,result);break;case4:printf("除法!");printf("输入(第一个数、运算符、第二个数):");scanf("%f%c%f",&num1,&op,&num2);result=num1/num2;printf("%.2f%c%.2f=%.2f\n",num1,op,num2,result);break;case0:exit(0);break;//退出
}getch();//获得一个字符且不显示,起暂停的作用}}拓展提高1.古代某工地需要搬砖块,已知男人一人搬3块,女人一人搬2块,小孩两人搬1块。问用45人正好搬45块砖,有多少种搬法。题目分析:这是一个组合问题,由3个因数决定组合的数量(即搬法的种数):男人、女人和小孩的人数,人数的取值范围为0~45,各类人数的取值与其他类人数的取值无关,但最后加起来正好45人。因此对于每类人数的取值都要反复地试,最后确定正好满足45人搬45块砖的组合。练一练拓展提高任务一任务一拓展提高-程序代码程序example.c如下:#include<stdio.h>intmain(){intmen,women,child;for(men=0;men<=45;men++)for(women=0;women<=45;women++)for(child=0;child<=45;child++)if(men+women+child==45
&&men*3+women*2+child*0.5==45)printf("men=%dwomen=%dchild=%d\n",men,women,child);return0;}上述程序有一些值得改进的地方。由于最多只有45块砖,男人的数量不会超过15人,女人的数量不会超过22人,而且男人和女人的数量确定下来后,小孩的数量是:
小孩数=45-男人数-女人数改进后的程序如下:#include<stdio.h>intmain(){intmen,women,child;for(men=0;men<=15;men++)for(women=0;women<=22;women++){child=45-men-women;if(men*3+women*2+child*0.5==45)printf("men=%dwomen=%dchild=%d\n",men,women,child);}return0;}思考:不用for循环解决本问题,应该如何编程?拓展提高2.有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?练一练拓展提高任务一分析:百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。参考程序#include"stdio.h"main(){inti,j,k,n=0;printf("\n");for(i=1;i<5;i++)/*以下为三重循环*/for(j=1;j<5;j++)for(k=1;k<5;k++){if(i!=k&&i!=j&&j!=k)/*确保i、j、k三位互不相同*/{printf("%d,%d,%d\n",i,j,k);n++;}}
printf("n=%d\n",n);}学习总结答一答【问题1】如何实现大写字母与小写字母的转换?【问题2】转义字符:\t、\b、\r、\n、\f分别具有什么含义?任务一学习总结【问题3】符号常量定义的一般格式为:?感谢观看!项目五循环结构程序设计第四讲for循环语句C语言程序设计任务驱动式教程循环结构控制语句循环的概述while循环语句do-while循环语句for循环语句目录循环应用问题导入国外某男子殴打了自己的女朋友,并导致女友受伤,法官除判处他监禁和提供金钱补偿外,还处罚他抄写5000遍道歉词:
“Boydonothitgirls.”for(i=0;i<5000;i++)
{
printf(“Boysdonothitgirls.”)
}for循环语句任务四【一般格式】
【流程图】for(表达式1;表达式2;表达式3){
循环体;}表达式之间用;分隔表达式2?循环体真(非0)表达式1表达式3假(0)for循环语句任务四循环变量赋初值循环条件表达式循环变量变化语句for(表达式1;表达式2;表达式3)
说明for循环语句-示例任务四
应用利用for语句计算大赛选手总分。(有10位评委)#include<stdio.h>voidmain(){
double
score,sum=0;
inti;
for(i=1;i<=10;i++)
{printf("请第%d位评委亮分:",i);scanf("%lf",&score);sum=sum+score;}printf(“该选手的总分为:%.2lf.\n",sum);}#include<stdio.h>voidmain(){
double
score,sum=0.0;
inti=1;
do{printf("请第%d位评委亮分:",i);scanf("%lf",&score);sum=sum+score;i++;
}while(i<=10)printf(“该选手的总分为:%.2lf.\n",sum);}for循环语句-示例任务四
应用1、求1-100以内的奇数之和;2、求100-200以内的奇数之和.#include<stdio.h>intmain(){inti;intsum=0;for(i=1;i<100;i+=2)//i+=2;等价于i=i+2;{sum=sum+i;}printf("sum=%d\n",sum);return0;}#include<stdio.h>intmain(){inti;intsum=0;for(i=101;i<=200;i+=2)//i+=2;等价于i=i+2;{sum=sum+i;}printf("sum=%d\n",sum);return0;}for循环语句-示例任务四相传古代印度国王舍罕要褒奖他的聪明能干的宰相达依尔(国际象棋的发明者),问他需要什么,达依尔回答说:“国王只要在国际象棋的棋盘上的第一个格子上放一粒米,第二个格子上放上2粒,第三个格子上放上4粒,依次类推,每格是前一格的2倍,一直放到64格,我就感恩不尽了”。国王答应了,结果全印度的粮食用完还是不够。国王纳闷,怎么也算不清这笔账。请用C语言编程来算一下。(1m3小麦大约1.42×108粒)如何实现循环结构呢?for语句for循环语句-示例任务四【算法分析】第一个格子上放1粒米,第二个格子上放上2粒,第三个格子上放上4粒,依次类推,每格是前一格的2倍,一直放到64格,共有多少粒米?用变量sum来存储一共所需的粒米第1格用得粒米是1
第2格是前一个的2倍则是21
第3格是第2格的2倍则是22
依次递推,第64格的粒米数是264
所以sum=1+2+22+23+24+…+264。可以看出每个数列项都是前一个的2倍,因此,可以设置当前格子的粒米数量用t表示,则下一格小麦数量t等于前一格小麦数量t的2倍,即t=t*2。for循环语句-示例任务四
应用使用for语句,编程计算:sum=1+2+22+23+24+…+264?【说明】“doublesum=0,t=1;”语句中定义了三个双精度的变量。sum用来存放所需米的总颗粒数,初值定义为0t用来表示当前这一格所需的米数量,初值是1for语句中含有三部分:“n=1”是循环控制变量,表示第几个格子,初值是第一格格子“n<=64”是循环条件,指循环到第64格时结束循环“n++”是循环控制变量,指每次执行完循环体后就将控制变量n加1。for循环语句-示例任务四
应用使用for语句,编程计算:sum=1+2+22+23+24+…+264?【说明】循环体还有两条语句:语句“sum+=t;”即“sum=sum+t”表示将当前格子的米数累加至sum。“t*=2;”即“t=t*2”,计算下一个格子的小麦数量。流程图for循环语句-示例任务四#include"stdio.h"main(){int____;doublesum=_____,t=_____;for(______;_______;______){
sum=______;
_______;}printf("米的总颗粒数sum=%e\n",sum);
}源程序使用for语句,编程计算:sum=1+2+22+23+24+…+264?for循环语句-示例任务四#include"stdio.h"main(){intn;doublesum=0,t=1;for(n=1;n<=64;n++){
sum=sum+t;
t=t*2;}printf("米的总颗粒数sum=%e\n",sum);
}源程序使用for语句,编程计算:sum=1+2+22+23+24+…+264?for循环语句-示例任务四#include"stdio.h"main(){intn;doublesum=0,t=1;for(n=1;n<=64;n++){sum+=t;t*=2;}printf("米的总颗粒数sum=%e\n",sum);
}源程序1使用for语句,编程计算:sum=1+2+22+23+24+…+264?for循环语句-示例任务四#include"stdio.h"main(){inti,n;doublesum=0,t=1;printf("第几格的米:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{sum+=t;t*=2;
}printf("米的总颗粒数sum=%e\n",sum);
}源程序2使用for语句,编程计算:sum=1+2+22+23+24+…+264?for循环语句-示例任务四多数情况下,for循环结构可以用等价的while循环表示。for语句的一般形式为:for(表达式1;表达式2;表达式3) 语句;等价于:表达式1;while(表达式2){ 语句; 表达式3;}
说明源程序与for语句等价的while语句形式for循环语句-说明任务四
说明在for语句中省略表达式for循环中的“表达式1”“表达式2”和“表达式3”都是可选项,即可以缺省,但表达式之间的分号“;”绝对不能缺省。(1)省略“表达式1”,即不设置初值,语句格式为:for(;表达式2;表达式3)应该注意的是,由于省略了“表达式1”,没有对循环变量赋初值,因此,为了能正常执行循环,应在for语句之前给循环变量赋以初值。即“表达式1”可以写在for语句结构的外面。for循环语句-说明任务四源程序省略“表达式1”:例如:n=1;for(;n<100;n++) 语句;它等价于for(n=1;n<100;n++) 语句;一般使用这种格式的原因是:循环控制变量的初值不是已知常量,而是需要通过前面语句的执行计算得到。for循环语句-说明任务四for(表达式1;;表达式3)等价于:while(1)例如:for(i=1;;i+=2) s=s+i;循环无终止地进行,i的值不断加大,s的值也不断累加。源程序(2)省略“表达式2”,表示不用判断循环条件是否成立,循环条件总是满足的,则如果不做其他处理,便成了死循环。语句格式为:for循环语句-说明任务四源程序(3)省略“表达式3”,则不对循环控制变量进行操作,这时可在语句体中加入修改循环控制变量的语句。语句格式为:for(表达式1;表达式2;)C语言允许在循环体内改变循环控制变量的值,这在某些程序设计中很有用。一般当循环控制变量呈非规则变化,并且在循环体中有更新循环控制变量的语句时使用。例如:for(n=1;n<=100;){ … n=4*n-1; …}循环控制变量的变化为:1,3,11,43,…for循环语句-说明任务四源程序(4)省略3个表达式,语句格式为:for(;;)这是一个无限循环语句,与while(1)的功能相同,一般处理方法是:在循环体内的适当位置,利用条件表达式与break语句的配合中断循环,即当满足条件时,用break语句跳出for循环。例如:for(;;){ … if(x==0)break; …}表示当x等于0时,使用break语句退出循环。for循环语句-说明任务四
说明源程序在for语句中省略语句for语句的循环体可以是空语句,表示当循环条件满足时进行空操作。一般用于延时处理。语句格式为:for(表达式1;表达式2;表达式3);例如:for(i=1;i<=20000;i++);表示循环变量空循环了20000次,占用了一定的时间,起到了延长时间的效果。for循环语句-说明任务四
说明源程序在for语句中逗号表达式的应用在for语句中,表达式1和表达式3可以是一个简单的表达式,也可以是逗号表达式,语句格式为:for(逗号表达式1;表达式2;逗号表达式3)例如:for(n=1,m=100;n<m;n++,m--) s=n+m;//表达式1同时为n和m赋初值,表达式3同时改变n和m的值。表示循环可以有多个控制变量,但是,逗号表达式可以与循环变量有关,也可以与循环变量无关。例如:for(s=0,i=1;i<=100;i++) s=s+i;s的赋初值可以写在for语句之前,也可以写在表达式1中。for循环语句-示例任务四
应用请分别计算100-200以内的奇数之和与偶数之和。#include<stdio.h>intmain(){inti;
intsum1=0,sum2=0;
for(i=100;i<200;){
if(i%2==0){sum2=sum2+i;
i++;
}else
{sum1=sum1+i;i++;}}printf("sum1=%d,sum2=%d\n",sum1,sum2);
return0;}for循环语句-示例任务四
应用利用for语句计算1+1/2+1/3+…+1/n。【提示】⑴n的值在程序执行时通过键盘输入⑵各变量的数据类型如何设计?⑶若“intn=2;”,“1/n”的值是多少?“1.0/n”又是多少?for循环语句-示例任务四#include<stdio.h>voidmain(){int
____;
double
______;printf("请输入n的值:",i);scanf("%d",&n);
for(____;______;____) {sum=_______________;}printf("sum:%.2lf.\n",sum);}源程序利用for语句计算1+1/2+1/3+…+1/n。for循环语句-示例任务四#include<stdio.h>voidmain(){inti,n;
doublesum=0;printf("请输入n的值:",i);scanf("%d",&n);
for(i=1;i<=n+1;i++) {sum=sum+1/i;}printf("sum:%.2lf.\n",sum);}源程序利用for语句计算1+1/2+1/3+…+1/n。技能实训编写程序,输出1~1000之间所有的完全平方数。练一练技能实训任务四例如:2*2=4,3*3=9,4*4=16,其中4、9、16就是完全平方数。平方跟:sqrt()技能实训编写程序,输出1~1000之间所有的完全平方数。练一练技能实训任务四#include<stdio.h>#include__________//要用sqrt()intmain(){doublei;
//循环变量
doublex;
//存储每个数的二次方根
for(i=1;i<_____;____){x________;if(_______)printf("%f\t",__________);
//\t是跳到下一个Tab位置
}printf("\n");return0;}技能实训编写程序,输出1~1000之间所有的完全平方数。练一练技能实训任务四#include<stdio.h>#include<math.h>//要用sqrt()intmain(){inti;//循环变量
intx;//存储每个数的二次方根
for(i=1;i<1000;++i){x=sqrt(i);
if(x*x==i)printf("%d\t",i);//\t是跳到下一个Tab位置
}printf("\n");return0;}技能实训编写程序,输出1~1000之间所有的完全平方数。练一练技能实训任务四#include<stdio.h>#include<math.h>//要用sqrt()intmain(void){doublei;
//循环变量
doublex;
//存储每个数的二次方根
for(i=1;i<1000;++i){x=sqrt(i);if(x*x==i)printf("%f\t",i);
//\t是跳到下一个Tab位置
}printf("\n");return0;}技能实训编写程序,输出1~1000之间所有的完全平方数。练一练技能实训任务四#include<stdio.h>intmain(void){inti;
//循环变量
for(i=1;i*i<1000;++i){printf("%d\t",i*i);
//\t是跳到下一个Tab位置
}printf("\n");return0;}学习总结答一答任务四学习总结【问题1】三个表达式的主要作用如下。表达式1:循环初值。给循环变量赋初值,该表达式在整个循环过程中只执行一次。表达式2:循环条件。用于控制循环体的执行次数,在每次执行循环语句前,先执行该表达式,用来判定是否继续循环。表达式3:循环增量。控制循环变量值的变化,使循环变量从初值逐渐向循环结束条件变化,在每次循环语句执行后执行该表达式。【问题2】for结构不是狭义上的计数式循环,是广义上的循环结构,它不仅能进行已知循环次数的循环,也能够处理循环次数未知的情况。感谢观看!项目五循环结构程序设计第五讲循环结构控的制语句——break语句C语言程序设计任务驱动式教程循环结构控制语句循环的概述while循环语句do-while循环语句for循环语句目录循环应用问题导入break语句由于某种原因需提前结束循环,如何实现呢?某班有30名新生,辅导员晚19:00点组织大家开班会利用PPT进行自我介绍,当第5名学生刚准备介绍时,突然停电了,使班会提前结束。循环结构控的制语句——break语句任务五【一般格式】
break;结束循环while(表达式1){……if(表达式2)
break;……
}在程序执行的过程中,如果“表达式2”为真,则执行break语句,此时也会终止循环。正常情况下,该循环结构的执行由循环控制条件“表达式1”控制,当“表达式1”为假时,循环结束。循环结构控的制语句——break语句任务五设:i-“循环变量”,控制学生人数(i<=30)
当i==5成立时,结束循环。【分析】某班有30名新生,辅导员晚19:00点组织大家开班会利用PPT进行自我介绍,当第5名学生刚准备介绍时,突然停电了,使班会提前结束。
应用循环结构控的制语句——break语句-示例任务五突然停电了,使班会提前结束源程序#include<stdio.h> voidmain(){int____;
for(_____;____;_____){
if(______){printf(“__________________________\n",i);break; } printf(“__________________\n",i);}}循环结构控的制语句——break语句-示例任务五突然停电了,使班会提前结束源程序#include<stdio.h> voidmain(){inti;
for(i=1;i<=30;i++){
if(i==5){printf("因为突然停电,第%d名学生没有介绍,班会提前结束。\n",i);break; } printf("第%d名学生介绍完成。\n",i);}}循环结构控的制语句——break语句-应用任务五
设计一个程序实现:输入若干字符,对输入的英文字母原样输出,其他字符不输出,直到输入回车键结束。#include<stdio.h> voidmain()
{
char____;
while(1)
{_____________;
if(________)
break;
elseif(______________________)_________________;
}
}源程序循环结构控的制语句——break语句-应用任务五
设计一个程序实现:输入若干字符,对输入的英文字母原样输出,其他字符不输出,直到输入回车键结束。#include<stdio.h> voidmain()
{
char
ch;
while(1)
{ch=getchar();
if(ch=='\n')
break;
elseif(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业培训课程开发十步法指南
- 小学主题班会课件:绿色生活小卫士
- 项目策划流程规划执行模板
- 项目阶段性成果汇报与评估确认函4篇
- 2026年配电网单相接地故障检测与定位新技术
- 家居装修行业在线设计与报价系统方案
- 2026年加油站灭火器材配置与维护
- 2026年基于大数据的学生运动能力分层教学应用
- 2026年汽车电瓶检测与更换保养规范
- 2026年ETC失效诈骗短信识别与处理
- 2026贵州黔南州企事业单位人才引进268人备考题库及答案详解(夺冠)
- 人教版小学二年级美术下册第四单元《长大以后》每节课教案汇编(含四个教案)
- 2026年2建法规试题及答案
- 2026年档案管理职称通关练习题库附参考答案详解【考试直接用】
- (2026版)医疗器械生产质量管理规范课件
- 2026年超星尔雅劳动教育类通关考试题库(突破训练)附答案详解
- 义务教育道德与法治课程标准(2025修订版)解读-红色-党政风格
- 2026年振动监测与故障诊断技术
- 2026年全国爱国卫生月主题:宜居靓家园、健康新生活
- 2025年职业指导师考试题库
- 多重耐药菌感染防控措施试题含答案
评论
0/150
提交评论