c++之基础B(双重循环)(第五课)
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了)