C语言第5章循环结构

更新时间:2023-07-24 11:13:02 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

C语言程序设计

第5章 循环结构程序设计

第5章 循环结构程序设计主 要 内 容 引例 while语句 do-while语句 for语句 循环的嵌套

C语言程序设计

第5章 循环结构程序设计

引例 编程计算 1+2+...+100根据已有的知识,可以用“1+2+……+100”来求解,但显然很繁琐。 现在换个思路来考虑: 首先设置一个累计器sum,其初值为0,利用sum += n来计算(n依 次取1、2、……、100),只要解决以下3个问题即可: (1)将n的初值置为1; (2)每执行1次“sum += n”后,n增1; (3)当n增到101时,停止计算。此时,sum的值就是1~100的累 计和。 根据已有的知识,单独实现每一步都不难。但是,由于需要经常使用 这种重复计算结构(称为循环结构),C语言提供了3条循环语句来 实现,以简化、并规范循环结构程序设计。在C语言中,可用以下语句实现循环: 用for语句; 用do-while语句; 用while语句。

C语言程序设计

第5章 循环结构程序设计

while语句 一般形式: while(expression) 循环体语句; 执行流程:while 假(0) expr 真(非0) 循环体

C语言程序设计

第5章 循环结构程序设计

特点:先判断表达式,后执行循环体 说明: 循环体有可能一次也不执行 循环体可为任意类型语句,若包含多条语句, 应使用花括弧括起来,以复合语句形式出现。 下列情况,退出while循环 条件表达式不成立(为零) 循环体内遇break,return,goto 无限循环: while(1) 循环体;

C语言程序设计

第5章 循环结构程序设计

例5.1 用while循环求

in 1

100

循环初值

循环变量增值

#include <stdio.h> main() { int i,sum=0; i=1; while(i<=100) { sum=sum+i; i++; } printf("%d",sum); }

循环条件sum=0+1=1 sum=1+2=3 sum=3+3=6 sum=6+4=10 …… sum=4950+100=5050 循环终值

循环体

C语言程序设计

第5章 循环结构程序设计

例5.2 显示1~10的平方

#include <stdio.h> main() { int i=1; while(i<=10) { printf("%d*%d=%d\n",i,i,i*i); i++; } }

运行结果: 1*1=1 2*2=4 3*3=9 4*4=16 5*5=25 6*6=36 7*7=49 8*8=64 9*9=81 10*10=100

C语言程序设计

第5章 循环结构程序设计

do~while语句 一般形式: do 循环体语句; while(expression); 执行流程:do

循环体 真(非0)while expr 假(0)

C语言程序设计

第5章 循环结构程序设计

特点:先执行循环体,后判断表达式 说明: 至少执行一次循环体 do~while可转化成while结构循环体

While循环假(0) expr 真(非0) 循环体

C语言程序设计

第5章 循环结构程序设计

例5.3 用do~while循环求

in 1

100

#include <stdio.h> main() { int i,sum=0; i=1; do { sum= sum+i; i++; }while(i<=100); printf("%d",sum); }

C语言程序设计

第5章 循环结构程序设计

例 while和do~while比

#include <stdio.h> main() { int i,sum=0; scanf("%d",&i); while(i<=100) { sum+=i; i++; } printf("%d",sum); }运行情况: 1 sum=5050 101 sum=0

运行情况:

#include <stdio.h> main() { int i,sum=0; scanf("%d",&i); do { sum+=i; i++; }while(i<=100); printf("%d",sum); }运行情况: 运行情况:

1sum=5050

101sum=101

C语言程序设计

第5章 循环结构程序设计

例题:求n的阶乘n!(n!=1*2* *n)。#include<stdio.h> main() { int i=1, n; long fact=1; /*将累乘器fact初始化为1*/ printf(“Input n: ”); scanf(“%d”, &n); do { fact *= i; /*实现累乘* i++; }while(i<=n); printf("%d ! = %ld\n", n, fact); }

程序运行情况如下: Input n: 5↙ 5 ! = 120

C语言程序设计

第5章 循环结构程序设计

for语句 格式: for(表达式1;表达式2;表达式3) 语句 执行过程:首先计算表达式1的值,给循环变 量赋初值,再测试表达式2的值,若其值非0, 则执行循环体语句,并计算表达式3的值,自 动修改循环变量的值,再测试表达式2的值, 直到表达式2的值为0(假)则退出循环。三个表 达式都可以省略。

C语言程序设计

第5章 循环结构程序设计

for语句 一般形式:

for([expr1] ;[ expr2] ;[ expr3]) 循环体语句;forexpr1 假(0) expr2 真(非0) 循环体 expr3

执行流程:

C语言程序设计

第5章 循环结构程序设计

求for循环求累计和

in 1

100

#include<stdio.h> main() { int i,sum=0; /*将累加器sum初始化为0*/ for(i=1; i<=100; i++) sum += i; /*实现累加*/ printf("sum=%d\n",sum); }程序运行情况如下: sum=5050

C语言程序设计

第5章 循环结构程序设计

求n的阶乘n!(n!=1*2*……*n)。#include<stdio.h> main() { int i, n; long fact=1; /*将累乘器fact初始化为1*/ printf(“Input n: ”); scanf(“%d”, &n);

for(i=1; i<=n; i++) fact *= i; /*实现累乘*/ printf("%d ! = %ld\n", n, fact);}程序运行情况如下: Input n: 5↙ 5 ! = 120

C语言程序设计

第5章 循环结构程序设计

for语句一般应用形式: for(循环变量赋初值;循环条件;循环变量增值) { 循环体语句; } 说明: 例2.12 用for循环求 for语句中expr1, expr2 ,expr3 类型任意,都可省略,但分 号;不可省 无限循环: for(;;) for语句可以转换成while结构 expr1; while(expr2) { 循环体语句; expr3; }

C语言程序设计

第5章 循环结构程序设计

例5.4 #include<stdio.h> main( ) { int i; for(i=0;i<10;i++) putchar(‘a’+i); }

例:#include<stdio.h> main( ) { int i=0; for(;i<10;i++) putchar(‘a’+i); }

例:#include<stdio.h> 例:#include<stdio.h> 运行结果:abcdefghij main( main( ) ) { {intint i=0; i=0; for(;i<10;) for(;i<10;putchar(‘a’+i),i++) ; putchar(‘a’+(i++)); } }

C语言程序设计

第5章 循环结构程序设计

main() { int i,j,k; for(i=0,j=100;i<=j;i++,j--) { k=i+j; printf("%d+%d=%d\n",i,j,k); } } #inc

lude<stdio.h> #include <stdio.h> main() main() { char c; for(;(c=getchar())!='\n';) { int i,c; for(i=0;(c=getchar())!='\n';i+=3) printf("%c ",c); printf("%c ",i+c); } }

C语言程序设计

第5章 循环结构程序设计

例:编写一个程序,输入10个整数,求出其中的最大数 #include<stdio.h> main() { int i, max ,n; printf(“输入10个整数”); scanf(“%d”,&n); max=n; for(i=2;i<=10;i++) { scanf (“%d”,&n);

if(n>max)max=n; } printf(“最大数:%d\n”,max); }

C语言程序设计

第5章 循环结构程序设计

【思考题】 鬼谷算题:今有一物不知其数,三三数之剩二,五五数之剩 三,七七数之剩二.部物几何?

用C语编程实现为: #include <stdio.h> main() {int x; for(x=0;x<100;x++) if (x%3==2&&x%5==3&&x%7==2) printf("this is number is %d\n",x); }解题歌诀: " 三人同行七十稀,五樹梅花廿一枝, 七子團圓月正半,除百零五便得知。

C语言程序设计

第5章 循环结构程序设计

几种循环的比较(1) 循环的控制

循环条件初始化

也可在 for前while (表达式) do 语句 for (表达式1;表达式2;表达式3)

语句

while (表达式)循环控制条件

语句

也可在循环 体内

修改循环条件

本文来源:https://www.bwwdw.com/article/esnm.html

Top