2016-02-06 60 views
-2

我在介紹C++課程時,我的任務是構建兩個帶用戶高度輸入的半角金字塔,其間有兩個空格。他們應該看起來像this。用戶只能輸入1到23之間的整數。在C++中構建兩個半金字塔

編輯:這是我的老師想要的答案 - 她最初要求我們使用數組來完成這些,但後來改變了主意,使用for循環代替。

#include<iostream> 
using namespace std; 

int main(){ 
int i,j,h; 
cout << "Welcome to Mario. Please enter an integer between 1 and 23." << endl; 
cin >> h; 

for(i=0;i<h;i++) 
    { 
    for(j=h;j>0;j--) 
    { 
     if (i+1 >= j) 
      cout << "#"; 
     else 
      cout << " " ; 
    } 
    cout << " " ; 

    for (j=0;j<h;j++) 
     { 
     if (i>=j) 
     cout << "#"; 
     } 
    cout << endl; 
    } 
return 0; 
} 

The generated two half pyramids

+1

歡迎來到堆棧溢出。請參閱[Tour]並參閱[我可以在此處詢問哪些主題](https://stackoverflow.com/help/on-topic) – mezmi

回答

0

使用二維數組... 雖然代碼還沒有完成。相同的模式可以應用8-23 ..

// Example program 
#include <iostream> 
#include <string> 
using namespace std; 

int main() 
{ 
    int height ; 
    cout << "Please select height from 1 - 23" << endl; 
    cin >> height; 

    if (height == 1) 
    { 
     char array [1][13] = 
     { 
      {' ', ' ', ' ', ' ', '*', ' ',' ','*',' ',' ',' ',' ' }}; 


     for (int x = 0; x < 1; x ++) 
     { 
      for (int y = 0; y < 13; y ++) 
      { 
       cout <<array[x][y] ; 
      } 
      cout << endl; 
     } 
    } 
    else if (height == 2) 
    { 
     char array [2][13] = 
     { 
      {' ', ' ', ' ', ' ', '*', ' ',' ','*',' ',' ',' ',' ' }, 
      { ' ', ' ', ' ','*','*', ' ',' ', '*','*', ' ',' ',' ',' '}}; 

     for (int x = 0; x < 2; x ++) 
     { 
      for (int y = 0; y < 13; y ++) 
      { 
       cout <<array[x][y] ; 
      } 
      cout << endl; 
     } 

    } 

    else if (height == 3) 
    { 
     char array [3][13] = 
     { 
      {' ', ' ', ' ', ' ', '*', ' ',' ','*',' ',' ',' ',' ' }, 
      { ' ', ' ', ' ','*','*', ' ',' ', '*','*', ' ',' ',' ',' '}, 
      {' ', ' ','*','*','*', ' ',' ', '*','*','*', ' ', ' '  }}; 

     for (int x = 0; x < 3; x ++) 
     { 
      for (int y = 0; y < 13; y ++) 
      { 
       cout <<array[x][y] ; 
      } 
      cout << endl; 
     } 
    } 
    else if (height == 4) 
    { 
     char array [4][13] = 
     { 
      {' ', ' ', ' ', ' ', '*', ' ',' ','*',' ',' ',' ',' ' }, 
      { ' ', ' ', ' ','*','*', ' ',' ', '*','*', ' ',' ',' ',' '}, 
      {' ', ' ','*','*','*', ' ',' ', '*','*','*', ' ', ' '  }, 
      {' ', '*','*','*','*', ' ',' ', '*','*','*','*',' ',' ' }}; 

     for (int x = 0; x < 4; x ++) 
     { 
      for (int y = 0; y < 13; y ++) 
      { 
       cout <<array[x][y] ; 
      } 
      cout << endl; 
     } 
    } 


    else if (height == 5) 
    { 
     char array [5][13] = 
     { 
      {' ', ' ', ' ', ' ', '*', ' ',' ','*',' ',' ',' ',' ' }, 
      { ' ', ' ', ' ','*','*', ' ',' ', '*','*', ' ',' ',' ',' '}, 
      {' ', ' ','*','*','*', ' ',' ', '*','*','*', ' ', ' '  }, 
      {' ', '*','*','*','*', ' ',' ', '*','*','*','*',' ',' ' }, 
      { '*','*','*','*','*',' ',' ', '*','*','*','*','*' }}; 

     for (int x = 0; x < 5; x ++) 
     { 
      for (int y = 0; y < 13; y ++) 
      { 
       cout <<array[x][y] ; 
      } 
      cout << endl; 
     } 

    } 

    else if (height == 6) 
    { 
     char array [6][15] = 
     { 
      {' ',' ', ' ', ' ', ' ', '*', ' ',' ','*',' ',' ',' ',' ',' ' }, 
      { ' ',' ', ' ', ' ','*','*', ' ',' ', '*','*', ' ',' ',' ',' ',' '}, 
      {' ',' ', ' ','*','*','*', ' ',' ', '*','*','*', ' ', ' ' ,' '  }, 
      {' ',' ', '*','*','*','*', ' ',' ', '*','*','*','*',' ',' ',' ' }, 
      {' ', '*','*','*','*','*',' ',' ', '*','*','*','*','*',' ' }, 
      {'*', '*','*','*','*','*',' ',' ', '*','*','*','*','*','*' }}; 

     for (int x = 0; x < 6; x ++) 
     { 
      for (int y = 0; y < 15; y ++) 
      { 
       cout <<array[x][y] ; 
      } 
      cout << endl; 
     } 
    } 
    else if (height == 7) 
    { 
     char array [7][17] = 
     { 
      {' ',' ',' ', ' ', ' ', ' ', '*', ' ',' ','*',' ',' ',' ',' ',' ',' ' }, 
      { ' ',' ',' ', ' ', ' ','*','*', ' ',' ', '*','*', ' ',' ',' ',' ',' ',' ' }, 
      {' ',' ',' ', ' ','*','*','*', ' ',' ', '*','*','*', ' ', ' ' ,' ' ,' '  }, 
      {' ',' ',' ', '*','*','*','*', ' ',' ', '*','*','*','*',' ',' ',' ',' ' }, 
      {' ',' ', '*','*','*','*','*',' ',' ', '*','*','*','*','*',' ' ,' ' }, 
      {' ','*', '*','*','*','*','*',' ',' ', '*','*','*','*','*','*' ,' ' }, 
      {'*','*', '*','*','*','*','*',' ',' ', '*','*','*','*','*','*' ,'*' }}; 

     for (int x = 0; x < 7; x ++) 
     { 
      for (int y = 0; y < 17; y ++) 
      { 
       cout <<array[x][y] ; 
      } 
      cout << endl; 
     } 
    } 
    else if (height == 8) 
    { 

    } 
    else if (height == 9) 
    { 

    } 
    else if (height == 10) 
    { 

    } 
    else if (height == 11) 
    { 

    } 
    else if (height == 12) 
    { 

    } 
    else if (height == 13) 
    { 

    } 
    else if (height == 14) 
    { 

    } 
    else if (height == 15) 
    { 

    } 
    else if (height == 16) 
    { 

    } 
    else if (height == 17) 
    { 

    } 
    else if (height == 18) 
    { 

    } 
    else if (height == 19) 
    { 

    } 
    else if (height == 20) 
    { 

    } 
    else if (height == 21) 
    { 

    } 
    else if (height == 22) 
    { 

    } 
    else if (height == 23) 
    { 

    } 



} 
0

你可以試試這個程序。它的工作方式是打印一個大三角形,然後用「空格」替換中間的列。它在另一個循環內使用一對for循環。

#include <iostream> 
using namespace std; 

int main() { 
    int n, i, sp, k; 
    cin >> n; 
    n += 1; 

    for (i = 1; i <= n; i++) { 
     for (sp = 1; sp <= n - i; sp++) { 
      cout<<" "; 
     } 
     for (k = 0; k != 2 * i - 1; k++) { 
      if (k == (2 * i - 1)/2) { 
       cout << " "; 
      } 
      else cout << "#"; 
     } 
     cout<<"\n"; 
    } 

}