天天看點

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;
}
           

繼續閱讀