c语言的重循环
5.2? 多重循环程序设计案例
案例5.4? 九九乘法表
【项目任务】
实现九九乘法表。
【设计思路】
实现九九乘法表的流程图如图5-3所示。
图5-3? 九九乘法表流程图
【程序代码】
#include
main()
{
??? int i,j;
???
??? for(i=1;i<=9;i++)
? ??{
??????? for(j=1;j<=i;j++)
??? ????????printf("%d*%d=%-3d",j,i,i*j);
?? ?????printf("\n"); /*换行,整个九九乘法表有9行,所以该语句应被执行9次*/
?? ?}
}
【运行结果】
1*1=1?
1*2=2? 2*2=4?
1*3=3? 2*3=6? 3*3=9?
1*4=4? 2*4=8? 3*4=12 4*4=16
1*5=5? 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6? 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7? 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8? 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9? 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
【知识拓展】
1.一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。
2.在一个循环体内如果有多个语句,应该用大括号括起来,这样就构成了复合语句。
案例5.5? 金字塔图形
【项目任务】
输出以下图形。
?????????????????????????????????????牋牋牋牋牋牋牋牋 ?牋?*
牋牋牋牋牋牋牋牋牋牋牋牋牋牋牋牋牋牋牋牋牋牋牋牋牋牋牋 牋 ***
牋牋牋牋牋牋牋牋牋牋牋牋牋牋牋牋牋牋牋牋牋牋牋牋牋牋牋 牋*****
?????????????????????????????????????????????????????? ?*******
??????????????????????????????????????????????????????? *********
【设计思路】
从以上图形可以看出,每一行的星号数为该行行数乘以2再减1,每一行前面的空格数为5减去该行行数。用变量i控制行数,用变量j控制行前的空格数以及打印的星号数,循环5次。
【程序代码】
#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++)??? /*打印2i-1个星号*/
??????????? printf("*");???
?
??????? printf("\n");
??? }
}
【运行结果】
??????????????????????????????????????????????????????? ??? *
??????????????????????????????????????????????????????? ?? ***
??????????????????????????????????????????????????????? ? *****
??????????????????????????????????????????????????????? ?*******
??????????????????????????????????????????????????????? *********
【知识拓展】
1.该程序中临时变量i和j不断地被重新赋值,原值均被新值所替代。
2.一般来说,对于输出图形的任务,只要认真找出其中的规律,按照规律来编写代码就相对容易了。
3.参照给出的案例,编写相应的程序代码,输出以下图形。
??????????????????????????????????????????????????????? * * * * *
??????????????????????????????????????????????????????? ? * * * * *
??????????????????????????