欢迎来到天天文库
浏览记录
ID:37700589
大小:1.09 MB
页数:26页
时间:2019-05-29
《第5章 循环结构程序设计1》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第5章循环结构程序设计例如:全班有50个学生,统计各学生三门课的平均成绩。i=1用while循环结构实现Ni≤50while(i<=50)Y{scanf……;输入一个学生成绩aver=……;求一个学生平均成绩printf……;输出一个学生平均成绩i++;i增1}while语句的一般形式如下:while(表达式)语句循环体100例5.1求1+2+3+…+100,即nn1#includeintmain(){inti,sum;while(i<=100){sum=sum+i;i++;}printf(
2、"sum=%d",sum);return0;}运行5.3用do---while语句实现循环do语句while(表达式);循环体语句Y表达式N5.3用do---while语句实现循环例5.2用do…while语句求:1001+2+3+…+100,即nn15.3用do---while语句实现循环解题思路:sum=0i=1;sum=0;i=1do{sum=sum+isum=sum+i;i=i+1i++;}while(i<=100);Yi≤100N#includeintmain(){inti=
3、1,sum=0;do{sum=sum+i;i++;}while(i<=100);printf("sum=%d",sum);return0;?计算1到100之间所有3的倍数的和}例5.3while和do---while循环的比较。inti,sum=0;当while后面的表达式的第一次的值为“真”inti,sum=0;printf(“i=?”);时,两种循环得到的结果相同;否则不相同printf(“i=?”);scanf(“%d”,&i);scanf(“%d”,&i);while(i<=10)do{{sum=sum
4、+i;sum=sum+i;i++;i++;}}while(i<=10);printf(“sum=%d",sum);printf(“sum=%d",sum);5.4用for语句实现循环一般形式为for(表达式1;表达式2;表达式3)语句i=1;sum=0;i=1;sum=0;whiledo(i<=100){{sum=sum+i;sum=sum+i;i++;i++;}while(i<=100);}for(i=1;i<=100;i++)sum=sum+i;5.5循环的嵌套5.7.1用break语句提前终止循环例
5、5.9输入一个大于3的整数n,判定它是否素数(prime,又称质数)。输入ni=2Ni≤n-1YYn被i整除Nn=i+1YNi≤n-1输出不是素数输出是素数#includeintmain(){intn,i;printf(“n=?");scanf("%d",&n);for(i=2;i<=n-1;i++)if(n%i==0)break;if(i6、思路:使用例5.9的算法在例5.9程序中只要增加一个外循环,先后对100~200间的全部整数一一进行判定即可……for(n=101;n<=200;n=n+2){k=sqrt(n);只对奇数进行检查for(i=2;i<=k;i++)if(n%i==0)break;if(i>=k+1){printf("%d",n);m=m+1;控制每行输出10个数据}if(m%10==0)printf(“”);}……5.7.2用continue语句提前结束本次循环例5.5要求输出100~200之间的不能被3整除的数。编程思路7、:对100到200之间的每一个整数进行检查如果不能被3整除,输出,否则不输出无论是否输出此数,都要接着检查下一个数(直到200为止)。for(n=100;n<=200;n++){if(n%3==0)continue;n=100printf("%d",n);}n≤200NYYn能被3整除N输出nn=n+15.7.3break语句和continue语句的区别continue语句只结束本次循环,而不是终止整个循环的执行break语句结束整个循环过程,不再判断执行循环的条件是否成立5.8循环程序举例111例5.8、7用1公式求的4357近似值,直到发现某一项的绝对值小于10-6为止(该项不累计加)。5.8循环程序举例11114357每项的分子都是1后一项的分母是前一项的分母加2第1项的符号为正,从第2项起,每一项的符号与前一项的符号相反11nn25.8循环程序举例sign=1,pi=0,n=1,term=1当term≥10-6pi
6、思路:使用例5.9的算法在例5.9程序中只要增加一个外循环,先后对100~200间的全部整数一一进行判定即可……for(n=101;n<=200;n=n+2){k=sqrt(n);只对奇数进行检查for(i=2;i<=k;i++)if(n%i==0)break;if(i>=k+1){printf("%d",n);m=m+1;控制每行输出10个数据}if(m%10==0)printf(“”);}……5.7.2用continue语句提前结束本次循环例5.5要求输出100~200之间的不能被3整除的数。编程思路
7、:对100到200之间的每一个整数进行检查如果不能被3整除,输出,否则不输出无论是否输出此数,都要接着检查下一个数(直到200为止)。for(n=100;n<=200;n++){if(n%3==0)continue;n=100printf("%d",n);}n≤200NYYn能被3整除N输出nn=n+15.7.3break语句和continue语句的区别continue语句只结束本次循环,而不是终止整个循环的执行break语句结束整个循环过程,不再判断执行循环的条件是否成立5.8循环程序举例111例5.
8、7用1公式求的4357近似值,直到发现某一项的绝对值小于10-6为止(该项不累计加)。5.8循环程序举例11114357每项的分子都是1后一项的分母是前一项的分母加2第1项的符号为正,从第2项起,每一项的符号与前一项的符号相反11nn25.8循环程序举例sign=1,pi=0,n=1,term=1当term≥10-6pi
此文档下载收益归作者所有