单层循环 -> 之心
双层循环
输出菱形
1.输出菱形
#include <iostream>
using namespace std;
int main()
{
//外层循环控制行,内层循环控制列
//上半部分
for(int i=0; i<4; i++)
{
for(int j=0;j<=2-i;j++)
{
cout<<" ";
}
//打印三角形的关键是讨论i和j的关系
for(int j=0;j<=2*i;j++)
{
cout<<"*";
}
cout<<endl;
}
//下半部分
for(int i=0; i<4; i++)
{
//下半部分
for(int j=0;j<=i;j++)
{
cout<<" ";
}
for(int j=0;j<=4-2*i;j++)
{
cout<<"*";
}
cout<<endl;
}
return 0;
}
输出:
*
***
*****
*******
*****
***
*
2.菱形的进阶
以字母输出菱形:
#include <iostream>
using namespace std;
int main()
{
char shap='A';
//外层循环控制行,内层循环控制列
//上半部分
for(int i=0; i<4; i++)
{
for(int j=0;j<=2-i;j++)
{
cout<<" ";
}
//打印三角形的关键是讨论i和j的关系
for(int j=0;j<=2*i;j++)
{
cout<<shap;
}
cout<<endl;
shap++;
}
//下半部分
for(int i=0; i<4; i++)
{
//下半部分
for(int j=0;j<=i;j++)
{
cout<<" ";
}
for(int j=0;j<=4-2*i;j++)
{
cout<<shap;
}
cout<<endl;
shap++;
}
return 0;
}
输出:
A
BBB
CCCCC
DDDDDDD
EEEEE
FFF
G
3.挖空的菱形
将中间的 * 换成 空格:
#include <iostream>
using namespace std;
int main()
{
char shap='A';
//外层循环控制行,内层循环控制列
//上半部分
for(int i=0; i<4; i++)
{
for(int j=0;j<=2-i;j++)
{
cout<<" ";
}
//打印三角形的关键是讨论i和j的关系
for(int j=0;j<=2*i;j++)
{
if(j==0||j==2*i)
cout<<shap;
else cout<<" ";
}
cout<<endl;
shap++;
}
//下半部分
for(int i=0; i<4; i++)
{
//下半部分
for(int j=0;j<=i;j++)
{
cout<<" ";
}
for(int j=0;j<=4-2*i;j++)
{
//边缘部分输出*,中间部分输出空格
if(j==0||j==4-2*i)
cout<<shap;
else cout<<" ";
}
cout<<endl;
shap++;
}
return 0;
}
输出:
A
B B
C C
D D
E E
F F
G
输出矩形
空心矩阵
#include <iostream>
using namespace std;
int main()
{
for(int i=0; i<=10; i++)
{
for(int j=0; j<=10; j++)
{
if(i==0||i==10||j==0||j==10)
cout<<"*";
else cout<<" ";
}
cout<<endl;
}
return 0;
}
输出:
***********
* *
* *
* *
* *
* *
* *
* *
* *
* *
***********
输出0
#include <iostream>
using namespace std;
int main()
{
//上半圆
for(int i=0; i<2; i++)
{
for(int j=0; j<3-i; j++)
{
cout<<" ";
}
//打印三角形的关键是讨论i和j的关系
//10-2*(3-i) 即 4+2*i
for(int j=0; j<4+2*i; j++)
{
if(i==0||j==0||j==3+2*i)
cout<<"*";
else
cout<<" ";
}
cout<<endl;
}
//中间矩形
for(int i=0; i<6; i++)
{
for(int j=0; j<10; j++)
{
if(j==0||j==9)
cout<<"*";
else cout<<" ";
}
cout<<endl;
}
//下半圆
for(int i=0; i<2; i++)
{
for(int j=0; j<i+2; j++)
{
cout<<" ";
}
//打印三角形的关键是讨论i和j的关系
//10-2*(2+i) 即 6-2*i
for(int j=0; j<6-2*i; j++)
{
if(i==1||j==0||j==5-2*i)
cout<<"*";
else
cout<<" ";
}
cout<<endl;
}
return 0;
}
输出:
****
* *
* *
* *
* *
* *
* *
* *
* *
****
输出箭头
#include <iostream>
using namespace std;
int main()
{
//上三角
for(int i=0; i<3; i++)
{
for(int j=0; j<2-i; j++)
{
cout<<" ";
}
for(int j=0; j<2*i+1; j++)
{
cout<<"*";
}
cout<<endl;
}
//竖线
for(int i=0; i<8; i++)
{
for(int j=0; j<5; j++)
{
if(j==2)
cout<<"*";
else
cout<<" ";
}
cout<<endl;
}`在这里插入代码片`
return 0;
}
输出:
*
***
*****
*
*
*
*
*
*
*
*