14循环的嵌套结构改变循环执行的状态.docx

上传人:b****8 文档编号:9277320 上传时间:2023-02-04 格式:DOCX 页数:14 大小:110.26KB
下载 相关 举报
14循环的嵌套结构改变循环执行的状态.docx_第1页
第1页 / 共14页
14循环的嵌套结构改变循环执行的状态.docx_第2页
第2页 / 共14页
14循环的嵌套结构改变循环执行的状态.docx_第3页
第3页 / 共14页
14循环的嵌套结构改变循环执行的状态.docx_第4页
第4页 / 共14页
14循环的嵌套结构改变循环执行的状态.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

14循环的嵌套结构改变循环执行的状态.docx

《14循环的嵌套结构改变循环执行的状态.docx》由会员分享,可在线阅读,更多相关《14循环的嵌套结构改变循环执行的状态.docx(14页珍藏版)》请在冰豆网上搜索。

14循环的嵌套结构改变循环执行的状态.docx

14循环的嵌套结构改变循环执行的状态

14-循环的嵌套结构、改变循环执行的状态

问题1:

打印如下图案

123456789

123456789

123456789

123456789

123456789

问题1解决

问题2:

打印如下图案

问题2解决

循环嵌套流程图

#include

voidmain()

{

inti,j;

for(i=1;i<=5;i++)

{

for(j=1;j<=i;j++)

{printf("%d",j);

}

printf("\n");

}

}

问题3:

打印如下图案

问题3解决

#include

main()

{

inti,j;

for(i=1;i<=5;i++)

{

for(j=1;j<=5-i;j++)

{printf("");

}

for(j=1;j<=i;j++)

{

printf("*");

}

printf("\n");

}

}

模仿练习【1】_打印如下图案

#include

main()

{

inti,j;

for(i=1;i<=5;i++)

{

for(j=1;j<=i;j++)

{

printf("*");

}

printf("\n");

}

}

#include

main()

{

inti,j;

for(i=1;i<=5;i++)

{

for(j=1;j<=6-i;j++)

{

printf("*");

}

printf("\n");

}

}

模仿练习[2]、[3]_打印如下图案

2.

(1)算法分析:

从图案中找出行数,空格数,星号数间的关系如下:

行数空格数星号数

131

223

315

407

i4-i2*i-1

可用双重循环控制整个图案的输出。

若用循环变量i,j分别控制外层,内层循环,则i的取值从1到4,表示行数,在每行中要确定前面空格个数和星号个数,空格个数是4-i,星号个数是2*i-1。

(2)根据分析结果写出源程序

#include

main()

{

inti,j;//定义循环控制变量

for(i=1;i<=5;i++)

{

for(j=1;j<=5-i;j++)//输出5-i个空格

printf("");

for(j=1;j<=2*i-1;j++)//输出2*i-1个*号

printf("*");

printf("\n");

}

}

3.

#include

main()

{

inti,j;

for(i=1;i<=5;i++)

{

for(j=1;j

{

printf("");

}

for(j=1;j<=6-i;j++)

{

printf("*");

}

printf("\n");

}

}

模仿练习

【练习4】将1、2、3、…、9打印15行。

【练习5】打印如下图案:

1

22

333

4444

55555

#include

voidmain()

{

inti,j;

for(i=1;i<=5;i++)

{

for(j=1;j<=5-i;j++)

printf("");

for(j=1;j<=i;j++)

{printf("%d",i);

}

printf("\n");

}

}

【练习6】打印九九乘法表,如图所示

#include

voidmain()

{

inti,j;

for(i=1;i<=9;i++)

{

for(j=1;j<=i;j++)

{printf("%d*%d=%-2d",j,i,i*j);

}

printf("\n");

}

}

二、break与continue

•break语句用于跳出当前一层switch()语句或循环语句;

•continue语句用于跳出该次循环,转向下一次判断和执行;

while(表达式)while(表达式)

{{

…………

break;continue;

…………

}}

 

break举例_以下程序的输出结果

(1)

#include

voidmain()

{

inti,s=0;

for(i=1;;i++)

{

if(i==6)

break;

s+=i;

}

printf("%d",s);

}

(2)

#include

voidmain()

{

inti,j;

for(i=0;i<10;i++)

{

j=i*10+6;

if(j%3!

=0)

continue;

printf("%3d",j);

}

}

*exit(n);

•格式:

exit(n);

•功能:

程序终止函数,在退出之前会关闭所有已经打开的文件。

•n表示退出状态,一般情况下0表示正常退出,非0表示非正常退出。

exit()包含在头文件stdlib.h中。

问题:

猜数游戏

猜数字游戏:

计算机产生一个随机数,由用户猜测该数字的值,猜测过程中计算机提示用户其输入的值偏大或偏小,直到用户输入正确后退出系统

问题分析

用变量num存放随机数,用n存放用户输入的数

1、产生随机数:

srand(time(0));//生成随机种子

rand()%100;//产生0~99的随机数

注:

用到time和srand函数,必须引用头文件

#include

#include

2、反复判断n是否等于num,用循环结构实现:

根据情况选用while语句

#include

voidmain()

{

#include

#include

#include

intnum,n;

srand(time(0));

num=rand()%100;

while

(1)

{

printf("请输入一个数");

scanf("%d",&n);

if(n>num)

printf("偏大\n");

else

if(n

printf("偏小\n");

else

{printf("恭喜你,猜对了!

\n");break;}//break;可换成exit(0);

}

}

问题:

小型计算器

•编写一个小型计算器,用来计算从键盘输入的两个数,要求如下:

1.有简单运算选择界面

2.采用循环实现菜单显示

3.采用switch结构实现菜单的选择

4.运算对象为两个操作数,从键盘输入

5.输出运算结果

问题分析

编程思路:

(1)选择运算类型,保存在op变量中;输入运算的两个数据,分别用变量number1,number2保存;

(2)运算结果result初始值为0;

(3)如果op值为1,则执行加法运算,结果保存在result;

(4)如果op值为2,则执行减法运算,结果保存在result;

(5)如果op值为3,则执行乘法运算,结果保存在result;

(6)如果op值为4,则执行除法运算,结果保存在result;

(7)如果op值为5,则执行取余运算,结果保存在result;

(8)输出result的值;

(9)转

(1)步。

实现步骤

–编写代码

–调试代码

讨论并总结

•循环嵌套的执行过程

“控制流程”编码中的常见错误。

结论1——循环嵌套的执行过程

 

执行顺序:

1、语句1

2、判断表达式:

如果为假,执行语句5;如果为真执行另一个循环语句块

3、执行语句2

4、判断表达式2:

如果为假,执行语句4,转回表达式1;如果为真,循环执行语句3

结论2——“控制流程”中常见错误

•if…else不配对

•switch中表达式类型与case语句的值不匹配

•无结束条件,死循环

•循环次数不清楚

学以致用

•寻找你身边的一个实际问题,构造出解决问题的表达式,描述解决问题的算法,以及编写解决问题的程序。

例如:

假设你在某公司工作,老板要你打印一张表,买主可以用它来购买多个特定部件的费用。

单个部件的价格从1元到9元不等。

N件东西的费用就是单价与数量相乘得出。

因此,你要打印一张像下面这样的数字表:

某公司部件费用明细表

123456789

24681012141618

369121518212427

4812162024283236

2012年10月7日

作业——每人必做

•继续完善计算器,达到运行要求。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1