C程序设计教程(中)清华PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
5.2.5三种语句的选用
▪ 1.while和do~while语句的区别
• while语句对作为循环条件的表达式求值和验证在执行循环体之前, 而do-While语句对作为循环条件的表达式求值和验证在执行循环体 之后。对于do-while语句,它的循环体至少被执行一次。
例5.5 N~S结构化流程图
#include "math.h" #include "stdio.h" main() {
float sum=0,t,x,n=3; printf("please input x :"); scanf("%f",&x); t=x; do {
sum=sum+t; t=t*(-x*x)/((n-1)*n); n=n+2; }while(fabs(t)>=1e-7); printf("sin(%f)=%f\n", x,sum); }
int n=1,m; long int s=1; printf("please input m:"); scanf("%d",&m); while(n<=m) {
s*=n; n++; } printf("%d!=%ld\n",m,s); }
【例5.4】求100以内能被3整除的数之和
n=1
sum=0 n<=100
1
n%3==0 0
sum=sum+n
n++ 输出sum
例5.4 N~S结构化流程图
main() {
int n=1,sum=0; while(n<=100) {
if(n%3==0) sum=sum+n; n++; } printf("%d\n",sum); }
5.2.2 do~while语句
▪ do~while的一般形式为: do 语句 while<表达式>;
【例5.6】计算自然数1到n的平方和。
#include <stdio.h> main ( ) {
int i,n; float sum=0; printf("please input n :"); scanf("%d",&n); for(i=1;i<=n;i++) sum+=i*i; printf("1*1+2*2 ... %d*%d=%f\n",n,n,sum); }
#include <stdio.h> #include <math.h> main ( ) { int m,n,i,t,max;
printf("Please input m,n :"); scanf("%d%d",&m,&n); if(m>n) t=n; else t=m; for(i=1;i<=t;i++) if(m%i==0&&n%i==0)
输入m
m%3==0
1
0
能被3整除
不能被3整除
N~S结构化流程图
【例5.2】找出100以内能被3整除的正整数。
初始条件
循环条 件 成立
循环体
不成立
步长
循环以后的其他语句
循环流程图
5.2 循环语句
▪ 5.2.1 while语句 • while语句是当型循环语句,一般形式为: • while(表达式) 语句;
循环体 步长 循环条件
do~while语句N~S结构化流程图
【例5.5】计算sin(x)=x-x3/3!+x5/5!x7/7!+…直到最后一项的绝对值小于10-7时 为止。
n=3,sum=0 输入x t=x
sum=sum+t
t=t*(-x*x)/(n-1)*n n=n+2
fabs(t)>=1e-7 输出sum
for语句的几种格式
▪ for语句的三个表达式都是可以省略的,但分号“;”绝对不能省略。 ▪ (1)for( ; ;) 语句; ▪ (2)for( ;表达式2;表达式3) 语句; ▪ (3)for(表达式1;表达式2;) 语句; ▪ (4)for(i=1,j=n;i<j;i++,j--) 语句;
【例5.7】求两个正整数的最大公约数
【例5.9】输出1~1000之间能被3,5,7同 时整除的数。
main()
{
int n;
for(n=1;n<=1000;n++)
{
if (n%3!=0) continue;
if (n%5!=0)
continue;
if(n%7!=0) continue;
printf("%8d",n);
}
printf("\n");
max=i; printf("Max is %d\n",max); }
5.2.4 break和continue
▪ 1.break语句 • break语句的一般形式为: • break;
【例5.8】判断某个一位数是否在一个不高于四位的 整数中出现。
main() {
int m,n; int flag=1; scanf("%d%d",&m,&n); while(m!=0) {
例如:找出100以内能被3整除的正整数。 main() {
int m=1; while(m<=100)
{ if(m%3==0)
printf("%8d",m); m=m+1; } }
【例5.3】求n!
n=1,s=1 输入m n<=m s=s*n n++ 输出s
例5.3 N~S结构化流程图
main() {
if(n==m%10) {flag=0;break;}
m=m/10; } if(flag==0)
printf("Yes!\n"); else
printf("No!\n"); }
2.continue语句
▪ 一般格式是: • continue;
执行了continue语句, 程序就跳过循环体中位 于该语句后的所有语句, 提前结束本次循环周期 并开始新ຫໍສະໝຸດ Baidu轮循环。
5.2.3 for语句
▪ 它的一般形式为: • for(表达式1;表达式2;表达式3) 语句
表达式1:循环的初始条件,一般为赋值表达式,给循 环的控制变量赋初值;
表达式2:循环条件,该表达式的值为逻辑量,一般为 关系表达式或逻辑表达式;
表达式3:循环的步长,一般为赋值表达式。 语句:循环体,当有多条语句时,必须使用复合语句。
21世纪高等学校计算机教育实用规划教材
C 程序设计教程(中)
朱小菲 主 编 清华大学出版社
第5章循环结构 第6章数组 第7章指针
清华大学出版社
第5章 循环结构
一 5.1循环的构成 二 5.2循环语句
三 5.3循环的嵌套 四 5.4循环应用实例
5.1 循环的构成
【例5.1】判断某一正整数是否能够被3整除。