14循环的嵌套结构改变循环执行的状态.docx
- 文档编号:9277320
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:14
- 大小:110.26KB
14循环的嵌套结构改变循环执行的状态.docx
《14循环的嵌套结构改变循环执行的状态.docx》由会员分享,可在线阅读,更多相关《14循环的嵌套结构改变循环执行的状态.docx(14页珍藏版)》请在冰豆网上搜索。
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日 作业——每人必做 •继续完善计算器,达到运行要求。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 14 循环 嵌套 结构 改变 执行 状态