1、14循环的嵌套结构改变循环执行的状态14-循环的嵌套结构、改变循环执行的状态问题1:打印如下图案123456789123456789123456789123456789123456789问题1解决问题2:打印如下图案问题2解决循环嵌套流程图#includevoid main() int i,j; for(i=1;i=5;i+) for(j=1;j=i;j+) printf(%d,j); printf(n); 问题3:打印如下图案问题3解决#includemain() int i,j; for(i=1;i=5;i+) for(j=1;j=5-i;j+) printf( ); for(j=1;j=
2、i;j+) printf(*); printf(n); 模仿练习【1】_打印如下图案#includemain() int i,j; for(i=1;i=5;i+) for(j=1;j=i;j+) printf(*); printf(n); #includemain() int i,j; for(i=1;i=5;i+) for(j=1;j=6-i;j+) printf(*); printf(n); 模仿练习2、3 _打印如下图案2. (1)算法分析:从图案中找出行数,空格数,星号数间的关系如下:行数 空格数 星号数1 3 12 2 33 1 54 0 7i 4-i 2*i-1可用双重循环控制整个
3、图案的输出。若用循环变量 i,j 分别控制外层,内层循环,则i 的取值从1 到4,表示行数,在每行中要确定前面空格个数和星号个数,空格个数是 4-i,星号个数是 2*i-1。(2)根据分析结果写出源程序#include main( )int i,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.#includemain() int i,j; for(i=1;i=5;i+) for(j=1;ji;j+) pr
4、intf( ); for(j=1;j=6-i;j+) printf(*); printf(n); 模仿练习【练习4】将1、2、3、9打印15行。【练习5】打印如下图案: 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5#includevoid main() int i,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】打印九九乘法表,如图所示#includevoid main() int i,j; for(i=1;i=9;i+) for(j=1;
5、j=i;j+) printf(%d*%d=%-2d ,j,i,i*j); printf(n); 二、break与continue break语句用于跳出当前一层switch()语句或循环语句; continue 语句用于跳出该次循环,转向下一次判断和执行; while(表达式) while(表达式) break; continue; break举例_以下程序的输出结果(1)#includevoid main() int i,s=0; for(i=1;i+) if(i=6) break; s+=i; printf(%d,s);(2)#includevoid main() int i,j; for
6、(i=0;i10;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); /生成随机种子 ran
7、d()%100; /产生099的随机数注:用到time和srand函数,必须引用头文件#include #include2、反复判断n 是否等于num,用循环结构实现:根据情况选用while语句#include void main() #include #include #include int num,n; srand(time(0); num=rand()%100; while(1) printf(请输入一个数); scanf(%d,&n); if(nnum) printf(偏大n); else if(nnum) printf(偏小n); else printf(恭喜你,猜对了!n);br
8、eak;/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,则执行乘法运算,结果
9、保存在result ;(6)如果op值为4,则执行除法运算,结果保存在result ;(7)如果op值为5,则执行取余运算,结果保存在result ;(8)输出result的值;(9)转(1)步。实现步骤 编写代码 调试代码讨论并总结 循环嵌套的执行过程 “控制流程”编码中的常见错误。结论1循环嵌套的执行过程执行顺序:1、语句12、判断表达式:如果为假,执行语句5;如果为真执行另一个循环语句块3、执行语句24、判断表达式2:如果为假,执行语句4,转回表达式1;如果为真,循环执行语句3结论2“控制流程”中常见错误 ifelse不配对 switch中表达式类型与case语句的值不匹配 无结束条件,死循环 循环次数不清楚学以致用 寻找你身边的一个实际问题,构造出解决问题的表达式,描述解决问题的算法,以及编写解决问题的程序。例如:假设你在某公司工作,老板要你打印一张表,买主可以用它来购买多个特定部件的费用。单个部件的价格从1元到9元不等。N件东西的费用就是单价与数量相乘得出。因此,你要打印一张像下面这样的数字表: 某公司部件费用明细表 1 2 3 4 5 6 7 8 9 2 4 6 8 10 12 14 16 18 3 6 9 12 15 18 21 24 27 4 8 12 16 20 24 28 32 36 2012年10月7日 作业每人必做 继续完善计算器,达到运行要求。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1