1.前言

呼~

刚发完上一篇,马上就来写下一篇了!

2.正文

双重循环,跟二维数组有关(比如写随机迷宫的生成,或其他什么的,我也不知道)

路人甲:那是不是三重循环也跟三维数组有关?

作者:是,只要你能写出来三维数组

当然了,今天我们不讲二维数组

讲双重循环

2.1双重循环

双重循环,有很多用处,比如前面刚讲的随机迷宫的生成,或跑酷小游戏之类的

也可以“画”图形

比如

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			cout<<"*";
		}
		cout<<endl;
	 } 
	return 0;
}
 

然后,你会说,哦,这不就是打印了一个n长n宽的正方形吗(不知道的可以重读小学了)!

没错,是的

那打印一个三角形呢?

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=i;j++)
		{
			cout<<"*";
		}
		cout<<endl;
	 } 
	return 0;
}
 

怎么样?是不是几乎没变?

就把for(int j=1;j<=n;j++)改成了for(int j=1;j<=i;j++)

这样子,如果你输入了5

那么是这样运行的:

首先,for循环的i开始循环

然后里面还有一个for循环

j<=i

等于

1<=1

输出一次*

然后换行

所以第一遍只输出了一个*

如此这样,循环结束后循环了五次

所以打印出来的图是这样的:

*

**

***

****

*****

不仅如此,也可以打印其他图

比如:

空心矩形(字符需自己输入,自己看在第几个输入)

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n,m;
	char c;
	cin>>n>>m>>c;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			if(i==1 || i==n ||j==1 ||j==m)
            {
				cout<<c;
            }
			else
            {
			    cout<<" ";
            }
		}
		cout<<endl;
	}
	return 0;
}

字符梯形(无需输入字符)

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n,m;
	cin>>m>>n;
	for(int i=m;i<=n;i++)
	{
		for(int j=1;j<=i;j++)
		{
			cout<<"*";
		}
		cout<<endl;
	 } 
	return 0;
}
 

(逃!)

新手小白(基础A,只不过现在教的是基础B,应该下一篇就上基础A了)

更多推荐