《《c语言多重循环》ppt课件》由会员分享,可在线阅读,更多相关《《c语言多重循环》ppt课件(25页珍藏版)》请在金锄头文库上搜索。
1、多重循环,文本作图问题 南通大学 徐丹,循环的嵌套,一个循环体内包含另一个完整的循环结构,称为循环的嵌套。 while语句、do-while语句和for语句都可以互相嵌套,甚至可以多层嵌套。例如:,while( ) for( ) ,for( ) for( ) ,二重循环,假设外循共循环m次,内循环共循环n次,则: 内外循环用到的循环变量名不能相同 外循环每循环1次,内循环需要完成整个n次循环 内循环的循环体共执行mn次,* * * * * * * * * * * * * * * *,* * * * * * * * * * * * * * *,1 22 333 999999999 1 2 2 3
2、 3 3 9 9 9 9 9 9 9 9 9,1 212 32123 4321234 98765432123456789 1 121 12321 1234321 12345678987654321,现场编程,题目1 输出以下图形 * * * *,分析 1、该问题用二重循环实现 2、外循环控制输出行数,for(i=1;i=n;i+) 内循环实现输出列数,for(j=1;j=m;j+) 3、该题行数i与列数j的关系是j=i,代码 #include main() int i,j; for(i=1;i=4;i+) for(j=1;j=i;j+) printf(“*“); printf(“n“); ,现
3、场编程,题目2 输出以下图形 * * * *,分析 1、该问题用二重循环实现 2、外循环控制输出行数 内循环中第一部分用循环打印空格确定打印字符的初始位置,第二部分确定每行打印符号的个数 3、该题行数i与列数j的关系是j=i,代码 #include main() int i,j; for(i=1;i=4;i+) for(j=1;j=4-i;j+) printf(“ “); for(j=1;j=i;j+) printf(“*“); printf(“n“); ,现场编程,题目3 输出以下图形 * * * *,分析 1、该问题用二重循环实现 2、外循环控制输出行数 内循环中第一部分用循环打印空格确定
4、打印字符的初始位置,第二部分确定每行打印符号的个数 3、本题图形的规律:每行“*”的个数与行数i的关系是2*i-1,1 2 3 4,n=4时:,3 2 1 0,n-i,i,1 3 5 7,2*i-1,* * * *,分析:,代码 #include main() int i,j,k; for(i=1;i=4;i+) for(j=1;j=4-i;j+) printf(“ “); for(k=1;k=2*i-1;k+) printf(“*“); printf(“n“); ,拓展练习,题目1 输出以下图形 1 121 12321 12345678987654321,1 2 3 4 5 6 7 8 9,
5、8 7 6 5 4 3 2 1 0,空格数,i,1 2 3 4 5 6 7 8 9,前半段 数字,0 1 2 3 4 5 6 7 8,后半段 数字,9i,i,i1,*1 *121 *12321 *123456787654321 12345678987654321,分析:,代码 #include void main() int i,j; for(i=1;i=1;j-) printf(“%d“,j); printf(“n“); ,拓展练习,题目2 输出以下图形 * * * * * * *,-3 -2 -1 0 1 2 3,n=4时:,3 2 1 0 1 2 3,abs(i),i,1 3 5 7 5
6、 3 1,2*(n-abs(i)-1,* * * * * * *,分析:,代码 #include #include void main() int i,j; for(i=-3;i=3;i+) for(j=1;j=abs(i);j+) printf(“ “); for(j=1;j=2*(4-abs(i)-1;j+) printf(“*“); printf(“n“); ,总结,外循环控制图形的行数 内循环的第一部分控制输出字符的首位置, 第二部分控制输出字符的个数 用printf(“n“)语句换行 如果关于x轴或y轴对称,循环变量从 -(n-1)/2到(n-1)/2,n为行数或列数。,作业,利用双重循环结构打印所示图形 * * * * 9 8 7 6 5 4 3 2 1 0,