【第五章总结】

【例子】假设今年我国人口总数为13亿,若按每年2%增长,计算从现在开始10年内每年人口数量

在这里插入图片描述
在这里插入图片描述

【例5.2】计算1-4/1+7/1-10/1+13/1-16/1+…的和,直到某一项的绝对值小于10负6次方
在这里插入图片描述
在这里插入图片描述

5.2 使用for语句实现循环结构

5.2.1 for语句的 基本语法

for语句的一般形式:

for(表达式1;表达式2;表达式3)

    循环体语句;

1.首先计算表达式1;

2.判断表达式2,若其值为真(非0),则执行循环体语句,然后执行第3步;若值为假(0),结束循环,转到第5步执行。

3.计算表达式3。

4.返回第2步继续执行;

5.循环结束,继续执行for语句的下一条语句;
【例5.3】输入一个正整数n,求sum的值
在这里插入图片描述
在这里插入图片描述

【例5.4】输入一个正整数n,求n!

在这里插入图片描述
在这里插入图片描述

2.for语句的一般形式中省略表达式1

格式如下:

                            for(;表达式2,表达式3)

                                    循环语句;

说明:省略表达式1时,可以将循环变量赋初值放在for之前。注意,此时不能省略第一个“;”。

例5.3的循环语句:

1.for(i=1;i<=n;i++)
2.sum=sum+i;
等价于:

1.i=1;
2.for(;i<=n;i++)
3. sum=sum+i;
3.for语句的一般形式中省略表达式2

格式如下:

                            for(表达式1;;表达式3)

                                    循环体语句;

4.for语句的一般形式中省略表达式3

                    for(表达式1;表达式2;)

                            循环体语句;

例5.4的循环语句:

1.for(i=1;i<=n;i++)
2. factorial=factorial*i;
等价于:

1.for(i=1;i<=n;)
2.{ factorial=factorial*i;
3. i++;
4.}
5.for语句的一般形式表达式1和表达式3也可以是逗号表达式

例5.3的程序段:

1.sum=0;
2.for(i=1,i<=n;i++)
3. sum=sum+i;
等价于:

for(sum=0,i=1;i<=n;i++)
sum=sum+i;
表达式sum=0,i=1为逗号表达式。

6.for语句的一般形式表达式2的值只要非0,就执行循环体

例如:

1.for(;(ch=getchar())!=’\n’😉
2. printf("%c",ch)
7.for语句的一般形式中循环语句可以省略

例5.3的循环语句:

1.for(i=1;i<=n;i++)
2. sum=sum+i;
等价于:

for(i=1;i<=n;sum=sum+i,i++);

5.2.2 for循环使用示例

【例5.5】输入一个整数n,计算1-1/4+1/7-1/10+1/13-1/16+…的前n项之和
在这里插入图片描述
在这里插入图片描述

【例5.6】输入10个数,输出其中的最大数

在这里插入图片描述
在这里插入图片描述

【例5.7】输出所有的水仙花数

在这里插入图片描述
在这里插入图片描述

【例5.8】由键盘输入一个正整数,判断该数是否为完数
在这里插入图片描述
在这里插入图片描述

【例5.9】统计由键盘中输入的若干个字符中,大写英文字母、小写英文字母、数字字符和其他字符的个数
在这里插入图片描述
在这里插入图片描述

【5.10】任意输入一行小写字母,将它们转换成大写字母后输出
在这里插入图片描述
在这里插入图片描述

【例5.11】 由键盘输入3个数字,将其组合成一个整型数并输出
在这里插入图片描述
在这里插入图片描述

【5.12】由键盘输入一个正整数,判断其是否为素数
在这里插入图片描述
在这里插入图片描述

5.3 使用while语句实现循环结构

5.3.1 while语句的基本语法

while语句一般形式如下:

while(表达式)

    循环体;

while语句的执行流程如图5.3所示

第一步:计算表达式的值,若表达式的值为“真”,则执行第2步;若表达式的值为“假”,则转到第4步。

第二步:执行循环体语句。

第三步:返回第一步。

第四步:结束循环,执行while语句的下一条语句。

注意:while语句的特点是先判断循环条件,后执行循环体。

5.3.2 while循环使用示例

【例5.13】计算sum的值
在这里插入图片描述
在这里插入图片描述

【5.14】输入一个正整数n,计算n
在这里插入图片描述
在这里插入图片描述

5.15】由键盘输入一串字符,分别统计输入字符中数字字符、字母字符及其它字符个数
在这里插入图片描述
在这里插入图片描述

5.4 使用 do-while语句实现循环结构

5.4.1 do-while语句的基本用法

do

    循环体

while(表达式);

do-while语句的执行流程如图5.4所示

1.执行循环体语句;

2.计算表达式的值,若表达式的值为‘真’,返回第一步;若表达式的值为‘假’,则执行第3步;

3.结束循环;

注意:do-while语句的特点是先循环体,后判断循环条件。因此,do-while循环至少要执行一次循环体。

5.4.2 do-while循环使用示例

【例5.16】使用do-while语句计算sum=\sum_{\sum_{n}{n=1}}{100}n的值
在这里插入图片描述
在这里插入图片描述

【例5.17】求两个自然数的最大公约数和最小公倍数
在这里插入图片描述

在这里插入图片描述

【例5.18】输入一个整数,统计该数的位数
在这里插入图片描述
在这里插入图片描述

5.5 改变循环结构的跳转语句

5.5.1 break语句

break结束整个循环

【例5.19】分析下面程序的运行结果
在这里插入图片描述
在这里插入图片描述

【例5.20】由键盘输入一个正整数,判断其是否为素数
在这里插入图片描述
在这里插入图片描述

【例5.21】从键盘输入一批学生的成绩,计算平均分,并统计不及格成绩个数
在这里插入图片描述
在这里插入图片描述

5.5.2 continue语句

作用:结束本次循环,开始下次循环

【例5.22】把1~100之间能7整除的数,以每行5个的形式在屏幕上输出
在这里插入图片描述

在这里插入图片描述

【例5.23】分析下面程序运行结果
在这里插入图片描述
在这里插入图片描述

5.5.3 goto语句

四种循环控制语句,for循环语句、while循环语句、do-while循环语句 、goto循环

【例5.24】使用goto语句计算sum=\sum_{n=1}^{100}n的值
在这里插入图片描述
在这里插入图片描述

5.6 循环嵌套

当一个循环的循环体内又包含了另一个完整的循环结构时,称为循环的嵌套或者是二重循环。一般情况下最多使用到三重循环。

1for语句中嵌套for语句

2for语句中嵌套while语句
3while语句中嵌套while语句

4do——while语句中嵌套for语句
5do——while语句中嵌套do——while语句

6while语句中嵌套do——while语句

使用循环嵌套时,注意以下几点:
1外循环执行一次,内循环要执行一轮。即外循环执行一次,内循环一直要执行到条件不满足时为一轮;在执行外循环一次,内循环又一直执行到条件不满足时为第二轮;如此重复执行,直到外循环条件不满足时,整个循环嵌套结束。
2循环嵌套格式中的内循环体不允许出现交叉,即外循环要包含内循环。
3循环嵌套是,内循环体中使用break语句和continue。

【例5.25】求1!+2!+3!+…+10!
在这里插入图片描述
在这里插入图片描述

【例5.26】输出乘法口诀表
在这里插入图片描述
在这里插入图片描述

【例5.27】求100以内的素数。要求每行输出10个。
在这里插入图片描述
在这里插入图片描述

【例5.28】将10~20之间的正整数分解质因数
在这里插入图片描述
在这里插入图片描述

5.7 典型算法举例

5.7.1 递推法

【例5.29】
在这里插入图片描述
在这里插入图片描述

【例5.30】求sin(x)=x-x3/3!+x5/5!-x^7/7!+…的近视值,要求精确到10负6次方
在这里插入图片描述
在这里插入图片描述

5.7.2 迭代法

【例5.31】
在这里插入图片描述
在这里插入图片描述

5.7.3 穷举法

【例5.32】
在这里插入图片描述
在这里插入图片描述

例5.33】判断由1、2、3、4四个数字能组成多少个互不相同且无重复数字的三位数?输出这些数
在这里插入图片描述
在这里插入图片描述

5.8:循环程序设计示例

【例5.34】

1.定义整型i,j;

2.若i<=5;转第3步,则转第步;

3.若i<=20-i;转第4步;则转第5步;

4.输出" ";

5.j++;转第3步;

6.若j<=2*i-1;转第7步;则转第9步;

7.输出"*";

8.j++;转第6步;

9.输出\n;

10.i++,转第2步;

9.结束;
在这里插入图片描述在这里插入图片描述

【例5.35】

1.定义m,n,count;

2.m=rand()%(80-10+1)+10;

3.输入一个10—80之间的整数;

4.判断是否为真,转第5步,则转第13步;

5.count++;

6.若m==n;转第7步;则转第9步;

7.m>n&&count<5;

8.输出"对不起!你猜对了!再来一次!";

9.m<n&&count<5;

10.输出"对不起!你猜大了!再来一次!";

11.若count==5;转第12步,则转第4步;

12.输出"对不起!n你没有机会!"

13.结束;
在这里插入图片描述
在这里插入图片描述

【例5.36】
在这里插入图片描述
在这里插入图片描述

【例5.37】

1.定义x,t;

2.输入"i|tpower\n";

3.若x<1000;转第4步;则第10步;

4.t=x*x;

5.若t!=0;转第6步;则转第9步;

6.若x==t%1000;转第7步;则转第8步;

7.输出x;x*x;

8.t=t/10;

9.x++,转第3步;

10.结束;
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值