第五章总结

5.1 引例

【例子】假设今年我国人口总数为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的循环语句:

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

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

格式如下:

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

                                        循环体语句;

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

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

                                循环体语句;

例5.4的循环语句:

  

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

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

例5.3的程序段:

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

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

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

例如:

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

例5.3的循环语句:

for(i=1;i<=n;i++)
    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】由键盘输入一个正整数,判断该数是否为完数

 运行结果2

  

 【例5.9】统计由键盘中输入的若干个字符中,大写英文字母、小写英文字母、数字字符和其他字符的个数。

 

【5.10】任意输入一行小写字母,将它们转换成大写字母后输出

  

【例5.11】 由键盘输入3个数字,将其组合成一个整型数并输出

  

【5.12】由键盘输入一个正整数,判断其是否为素数

运行结果2

 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=n的值

  

【例5.17】求两个自然数的最大公约数和最小公倍数

  

【例5.18】输入一个整数,统计该数的位数

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

5.5.1  break语句

break结束整个循环

  

【例5.19】分析下面程序的运行结果

  

【例5.20】由键盘输入一个正整数,判断其是否为素数

运行结果1

 运行结果2

  

【例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=n的值

5.6    循环嵌套

 

 

 【例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-x^3/3!+x^5/5!-x^7/7!+...的近视值,要求精确到10负6次方 

 5.7.2   迭代法

 

 

 

【例5.31】

5.7.3  穷举法

 

 

【例5.32】 

 

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


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值