C++编程 打印三角形的各种玩法

目录

    • 1. 指定五行直角三角形
    • 2. 由用户指定任意行的等腰三角形
    • 3.平行四边形式等腰三角形拆分
    • 4.菱形

1. 指定五行直角三角形

解题思想:
 解决该题的主要难点在于每行的固定输出,那么如何让每行都能固定输出正好的 * 号呢?自然而然的就想到了循环,所以我在这里使用了两个for循环嵌套。
  定义两个变量i和j,通过i来控制外层循环用于控制三角形的行数,通过j来控制内层循环完成每行固定星号的输出。

代码实现:

#include
using namespace std;

void main(){
	int i,j;
	for (i=1;i<=5;i++)
	{
		for (j=1;j<=i;j++)
		{
			cout<<"*";
		}
		cout<

效果图展示:
C++编程 打印三角形的各种玩法_第1张图片

2. 由用户指定任意行的等腰三角形

解题思想:
 变量i配合变量n由用户输入控制总行数,根据要得到的图形规律可得:当前空格符数量 = 最大行号 - 当前行号,当前符数量 = 当前行号 * 2 - 1,故设置以下说明:
  i行空格符数量 = 最大行号 - i
  i行
符数量 = i * 2 - 1
  i换行符数量:1

代码实现:

void main(){
	int i,j,k,n;
	cout<<"请输入你想要的行数:";
	cin>>n;
	for(i = 1;i <= n;i++ ){  //该控制行决定了循环时的当前行号
		for(j = 1;j <= n-i;j++){  //该控制行决定了打印空格符的数量,i决定行号。
			cout<<" "; 
		}
		for(k = 1;k <= i*2-1;k++){  //该控制行决定了打印*符号的数量,i决定行号。
			cout<<"*";
		}
		cout<

效果图展示:
C++编程 打印三角形的各种玩法_第2张图片

3.平行四边形式等腰三角形拆分

解题思想:
  左边的三角形原理同2,利用for循环以及由用户输入的变量space来自主设置两个三角形之间的空格,而右边三角形则需要根据规律得出m=2*(n-1),一般是看图,根据图片规律得出,故实现倒置输出。

代码实现:

int main() {
int n,space;
	cout << "请输入行数:";
	cin >> n;
	cout << "请输入间隔数:";
	cin >> space;
	cout <<  endl;
	for (int i = 1; i <= n; ++i) {
		// left
		for (int k = 0; k < n - i; ++k) {
			 cout << " ";
		}
		for (int j = 0; j < 2 * i - 1; ++j) {
			 cout << "*";
		}
		// space
		for (int l = 0; l < space; ++l) {
			cout << " ";
		}

		for (int m = 0; m < 2 * (n - i) + 1; ++m) {
			 cout << "*";
		}
		 cout <<  endl;
	}
	return 0;
}

效果图展示:
C++编程 打印三角形的各种玩法_第3张图片
C++编程 打印三角形的各种玩法_第4张图片

4.菱形

解题思路:
 思路和等腰三角形基本一致,无非就是在正面输出一遍后,再加一个循环嵌套倒置输出。

代码实现:

void main(){
	int i,j,k,n;
	cout<<"请输入你想要的行数:";
	cin>>n;
	for(i = 1;i <= n;i++ ){  //该控制行决定了循环时的当前行号
		for(j = 1;j <= n-i;j++){  //该控制行决定了打印空格符的数量,i决定行号。
			cout<<" "; 
		}
		for(k = 1;k <= i*2-1;k++){  //该控制行决定了打印*符号的数量,i决定行号。
			cout<<"*";
		}
		cout<= 0; i--)
	{
		for (j = 1; j 

效果图展示:
C++编程 打印三角形的各种玩法_第5张图片

你可能感兴趣的:(C++)