嵌套循环的简单应用

“非知之难,行之为难;非行之难,终之斯难”。

——《贞观政要·卷十·论慎终》


🐒导语:

嵌套循环,就是循环的嵌套,如果在一个循环体中出现另一个循环的结构,则称之为嵌套循环,也叫做多重循环。这篇文章,就带我们开始学习嵌套循环,因为本小白也是刚刚学习,可能下文会出现措辞不当的情况,敬请各位指正,届时,本人将作出修改,谢谢各位啦。前进路上我们并肩前行。

🐕引入:

首先我们看一组简单的嵌套循环示例;

#include <stdio.h>
 int main()
 {
 	int i,j;
 	for(i=0;i<2;i++)
 	{
 		for(j=0;j<3;j++)
 		{
		 printf("%d,%d\n",i,j);
	}
	 printf("******\n");
    }
    return 0;
 } 

对于这串代码我们可以做出如下剖析👇 

     

       红色框出的为外循环,它的大括号括起来的是它的循环体;相同的,绿色的为内循环,它的大括号包括的是它的循环体。在分析这样的循环的执行流程时,我们可以首先把它的外循环的循环体看成一个整体,只有也就是变成了单个循环,之后将外循环展开,然后在逐步展开内层循环

这样,我们就完成了第一步,将外层循环展开了,下面就开始展开内层的循环,方法与外循环大差不差。👇

所以,我们的代码也就显而易见了,只需要拼凑内外循环就可以了。👇

 🐱例题:

 知道了方法,我们现在就来做一个我们从小就知道的九九乘法表,那么我们究竟该如何去写呢?🤔🤔🤔

 思路:

1.九九乘法表有九行,每n行就有n个式子;

2.一次想打出整个有些困难,我们可以先想一个式子,然后扩展到一行式子,最后扩展到整个九九乘法表。

我们就以第九行为例,先打出第一个式子;

#include <stdio.h>
int main(){
    int i,j;
    i=9;//行号
    j=1;//列号

	printf("%d*%d=%d\n",i,j,i*j);
	
	return 0;
}

 如果按照这样一个一个打出来,肯定很费时间,而且可能会产生错误,所以,我们再将这个式子扩展到一行,所以产生如下代码。

#include <stdio.h>
int main(){
	int i,j;
	for(i=9,j=1;j<10;j++) 
	printf("%d*%d=%d\t",i,j,i*j);
	printf("\n");

	return 0;
}

其中的\t在之前也有提到,为水平制表符(即Tab键),功能是使光标跳动下一个水平制表位,水平制表位通常位于第8k+1个字符的位置(k为自然数),就像下面这个小图所示,各位不明白的可以自己去试一试,会很明确。

 所以,由以上,在加上行数的循环,我们就可以打出所有式子。👇

#include <stdio.h>
int main(){
	int i,j;
	for(i=1;i<10;i++){
	for(j=1;j<10;j++){
	printf("%d*%d=%d\t",i,j,i*j);
}
    printf("\n");
}

	return 0;
}

运行后我们会发现,运行结果并不像我们所期望的那样的三角形,而是产生如下结果的矩形。

     为什么会出现这样的结果呢,因为外循环与内循环都会产生9个值,第几行也就是行数是由外循环的循环次数所决定,每行的所产生的个数则是内循环的循环次数所决定的,所以会产生九行九列的式子。

      然后我们可以思考九九乘法表,第一行有一个式子,第二行有两个式子,以此类推,每一行都有与其行数相等的式子,所以我们只需要让内循环的循环次数去跟随外循环的即可,所以产生如下代码。

#include <stdio.h>
int main(){
	int i,j;
	for(i=1;i<10;i++){
	for(j=1;j<=i;j++){
	printf("%d*%d=%d\t",i,j,i*j);
}
    printf("\n");
}

	return 0;
}

这就是最终的,九九乘法表的代码啦!👇展示一下运行后的结果👇

 结语:

本篇文章就讲到这里,因为最近要考试,所以也只能这样啦,本文如有错误,烦请评论区指正,感谢阅读到此的诸位,我们一起继续加油啊!

 

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值