天天看点

C++编程练习 利用嵌套循环实现各类三角形图案1.*组成的直角三角形2.数字组成的三角形3.字母组成的三角形4.打印*组成的倒三角5.打印数字组成的倒三角形6.*构成的金字塔型正三角形(近似)7.数字构成的金字塔8.*构建倒金字塔

原题来自菜鸟教程

C++ 实例 - 创建各类三角形图案

文章目录

  • 1.*组成的直角三角形
  • 2.数字组成的三角形
  • 3.字母组成的三角形
  • 4.打印*组成的倒三角
  • 5.打印数字组成的倒三角形
  • 6.*构成的金字塔型正三角形(近似)
  • 7.数字构成的金字塔
  • 8.*构建倒金字塔

1.*组成的直角三角形

预期效果

C++编程练习 利用嵌套循环实现各类三角形图案1.*组成的直角三角形2.数字组成的三角形3.字母组成的三角形4.打印*组成的倒三角5.打印数字组成的倒三角形6.*构成的金字塔型正三角形(近似)7.数字构成的金字塔8.*构建倒金字塔
#include<iostream>
using namespace std;

int main()
{
	int rows;
	cout << "please input how many rows do you want to print:";
	cin >> rows;
	for (int i=1; i<=rows; i++){
		for (int j=1; j<=i; j++){
			cout << "*";
		}
		cout << endl;
//		cout << "\n";别忘了转义符的换行方法啊~ 
	}
}
           
C++编程练习 利用嵌套循环实现各类三角形图案1.*组成的直角三角形2.数字组成的三角形3.字母组成的三角形4.打印*组成的倒三角5.打印数字组成的倒三角形6.*构成的金字塔型正三角形(近似)7.数字构成的金字塔8.*构建倒金字塔

2.数字组成的三角形

C++编程练习 利用嵌套循环实现各类三角形图案1.*组成的直角三角形2.数字组成的三角形3.字母组成的三角形4.打印*组成的倒三角5.打印数字组成的倒三角形6.*构成的金字塔型正三角形(近似)7.数字构成的金字塔8.*构建倒金字塔

同理~

稍微改一下输出即可 原理相同~

#include<iostream>
using namespace std;

int main()
{
	int rows;
	cout << "please input how many rows do you want to print:";
	cin >> rows;
	for (int i=1; i<=rows; i++){
		for (int j=1; j<=i; j++){
			cout << j << " ";//稍微改一下输出即可  原理相同~
		}
		cout << endl;
//		cout << "\n";别忘了转义符的换行方法啊~ 
	}
}
           
C++编程练习 利用嵌套循环实现各类三角形图案1.*组成的直角三角形2.数字组成的三角形3.字母组成的三角形4.打印*组成的倒三角5.打印数字组成的倒三角形6.*构成的金字塔型正三角形(近似)7.数字构成的金字塔8.*构建倒金字塔

3.字母组成的三角形

C++编程练习 利用嵌套循环实现各类三角形图案1.*组成的直角三角形2.数字组成的三角形3.字母组成的三角形4.打印*组成的倒三角5.打印数字组成的倒三角形6.*构成的金字塔型正三角形(近似)7.数字构成的金字塔8.*构建倒金字塔
#include<iostream>
using namespace std;

int main()
{
	char input,alphabet = 'A';
	cout << "请输入最后一个大写字母:";
	cin >> input;
	for (int i=1; i<=(input - 'A' + 1); i++){
		for (int j=1; j<=i; j++){
			cout << alphabet << " ";
		}
		alphabet ++;
		
		cout << endl;
//		cout << "\n";别忘了转义符的换行方法啊~ 
	}
}
           
C++编程练习 利用嵌套循环实现各类三角形图案1.*组成的直角三角形2.数字组成的三角形3.字母组成的三角形4.打印*组成的倒三角5.打印数字组成的倒三角形6.*构成的金字塔型正三角形(近似)7.数字构成的金字塔8.*构建倒金字塔

4.打印*组成的倒三角

C++编程练习 利用嵌套循环实现各类三角形图案1.*组成的直角三角形2.数字组成的三角形3.字母组成的三角形4.打印*组成的倒三角5.打印数字组成的倒三角形6.*构成的金字塔型正三角形(近似)7.数字构成的金字塔8.*构建倒金字塔
#include<iostream>
using namespace std;

int main()
{
	int rows;
	cout << "please input how many rows do you want to print:";
	cin >> rows;
	for (int i=rows; i>=1; i--){
		for (int j=i; j>=1; j--){
			cout << "*";
		}
		cout << endl;
//		cout << "\n";别忘了转义符的换行方法啊~ 
	}
}
           
C++编程练习 利用嵌套循环实现各类三角形图案1.*组成的直角三角形2.数字组成的三角形3.字母组成的三角形4.打印*组成的倒三角5.打印数字组成的倒三角形6.*构成的金字塔型正三角形(近似)7.数字构成的金字塔8.*构建倒金字塔

5.打印数字组成的倒三角形

C++编程练习 利用嵌套循环实现各类三角形图案1.*组成的直角三角形2.数字组成的三角形3.字母组成的三角形4.打印*组成的倒三角5.打印数字组成的倒三角形6.*构成的金字塔型正三角形(近似)7.数字构成的金字塔8.*构建倒金字塔
C++编程练习 利用嵌套循环实现各类三角形图案1.*组成的直角三角形2.数字组成的三角形3.字母组成的三角形4.打印*组成的倒三角5.打印数字组成的倒三角形6.*构成的金字塔型正三角形(近似)7.数字构成的金字塔8.*构建倒金字塔

6.*构成的金字塔型正三角形(近似)

到了这里终于是上了一些难度~

难度在于——把空间空出来~

C++编程练习 利用嵌套循环实现各类三角形图案1.*组成的直角三角形2.数字组成的三角形3.字母组成的三角形4.打印*组成的倒三角5.打印数字组成的倒三角形6.*构成的金字塔型正三角形(近似)7.数字构成的金字塔8.*构建倒金字塔

这个还算简单 重点就是把每行第一个星号之前的位置空出来~

C++编程练习 利用嵌套循环实现各类三角形图案1.*组成的直角三角形2.数字组成的三角形3.字母组成的三角形4.打印*组成的倒三角5.打印数字组成的倒三角形6.*构成的金字塔型正三角形(近似)7.数字构成的金字塔8.*构建倒金字塔

本人解法——代码如下:

#include<iostream>
using namespace std;

int main()
{
	int space, rows;
	 
	cout << "please input how many rows do you want to print:";
	cin >> rows;
	
	for (int i=1; i <= rows; i++){
		for (space = 1; space <= rows - i; space++){
//			第一行打 rows-1 个空格
//          最后一行无空格 
			cout << " ";
		}
		
		for(int k = 0; k <= 2*i - 1 ;k++){
			cout << "* ";
			k++;
		} 
		cout << endl;
//		cout << "\n";别忘了转义符的换行方法啊~ 
	}
	return 0;
}
           

这里菜鸟教程给出了一个很有意思的方法:

在打印金字塔的组成部分——“*”时

用了一个巧妙的while循环 打印出每层的 星号

C++编程练习 利用嵌套循环实现各类三角形图案1.*组成的直角三角形2.数字组成的三角形3.字母组成的三角形4.打印*组成的倒三角5.打印数字组成的倒三角形6.*构成的金字塔型正三角形(近似)7.数字构成的金字塔8.*构建倒金字塔

搭配上外层for循环末尾k值的清零

C++编程练习 利用嵌套循环实现各类三角形图案1.*组成的直角三角形2.数字组成的三角形3.字母组成的三角形4.打印*组成的倒三角5.打印数字组成的倒三角形6.*构成的金字塔型正三角形(近似)7.数字构成的金字塔8.*构建倒金字塔
C++编程练习 利用嵌套循环实现各类三角形图案1.*组成的直角三角形2.数字组成的三角形3.字母组成的三角形4.打印*组成的倒三角5.打印数字组成的倒三角形6.*构成的金字塔型正三角形(近似)7.数字构成的金字塔8.*构建倒金字塔

完整代码如下:

#include<iostream>
using namespace std;

int main()
{
	int space, rows;
	 
	cout << "please input how many rows do you want to print:";
	cin >> rows;
	
	for (int i=1,k=0; i <= rows; i++,k=0){
//		每次循环结束 k清0 ~~ 
		for (space = 1; space <= rows - i; space++){

			cout << " ";
		}
		while(k != 2*i-1)
        {
            cout << "* ";
            ++k;
        }
		cout << endl;

	}
	return 0;
}
           

7.数字构成的金字塔

C++编程练习 利用嵌套循环实现各类三角形图案1.*组成的直角三角形2.数字组成的三角形3.字母组成的三角形4.打印*组成的倒三角5.打印数字组成的倒三角形6.*构成的金字塔型正三角形(近似)7.数字构成的金字塔8.*构建倒金字塔

完整代码如下:

#include<iostream>
using namespace std;

int main()
{
	int rows, count = 0, count1 = 0, k = 0;
	 
	cout << "please input how many rows do you want to print:";
	cin >> rows;
	
	for (int i=1; i <= rows; ++i){
		for (int space = 1; space <= rows - i; ++space){

			cout << "  ";
			++count;
		}
		
		while(k != 2*i-1)
        {
            if(count <= rows-1)
            {
            	cout << i+k <<" ";
            	++count;
			}
			else{
				++count1;
				cout << i+k-2*count1 <<" ";
			}
			++k;
        }
        count1 = count = k = 0;
        //将count值 k值清零
		cout << endl;

	}
	return 0;
}
           

难度升级 因为要输出的不止是单调的星号*

而是需要输出这样对称的数字

所以在while循环中 需要分情况

C++编程练习 利用嵌套循环实现各类三角形图案1.*组成的直角三角形2.数字组成的三角形3.字母组成的三角形4.打印*组成的倒三角5.打印数字组成的倒三角形6.*构成的金字塔型正三角形(近似)7.数字构成的金字塔8.*构建倒金字塔

8.*构建倒金字塔

效果如下:

C++编程练习 利用嵌套循环实现各类三角形图案1.*组成的直角三角形2.数字组成的三角形3.字母组成的三角形4.打印*组成的倒三角5.打印数字组成的倒三角形6.*构成的金字塔型正三角形(近似)7.数字构成的金字塔8.*构建倒金字塔

代码如下:

#include<iostream>
using namespace std;

int main()
{
	int rows;
	 
	cout << "please input how many rows do you want to print:";
	cin >> rows;
	
	for (int i=rows; i >=1; --i){

		for (int space = 0; space < rows - i; ++space)
			cout << "  ";
		
		for (int j=i; j<= 2*i-1; ++j)
			cout << "* ";
        
		for (int j = 0; j<i-1; ++j)
			cout << "* ";

        cout << endl;
	}
	return 0;
}
           

继续阅读