2017-03-07 11 views
0

プログラムはユーザに数字を入力するように要求し、1と指定された数字の間の数字を使って三角形を形成します。 私は与えられた数字を使用して作成した三角形を逆にする方法を見つけようとしています

cout << "Enter a number: "; 
cin >> rows; 
for (int y = rows; y > 0; --y) 
    { 
     for (int x = 1; x <= y; x++) 
     { 
      cout << x << " "; 
     } 
     cout << endl; 
    } 

そして私はなるだろう:私は、コードを思い付いた

は番号を入力します(ユーザーが7を言うことができます、番号を入力)

1 2 3 4 5 6 7 
1 2 3 4 5 6 
1 2 3 4 5 
1 2 3 4 
1 2 3 
1 2 
1 

を私はように見えることはできませんそれを完全に間違えることなく、

7 6 5 4 3 2 1 
* 6 5 4 3 2 1 
* * 5 4 3 2 1 
* * * 4 3 2 1 
* * * * 3 2 1 
* * * * * 2 1 
* * * * * * 1 

にしてください。可能なヒント?

+0

2つの出力のどちらが希望ですか? –

+0

第2のもの。 7で始まって1に進み、次の行で同じことをしますが、6で始まり、7がまだそこにあるかのようにスペースを残してください。 @ JohnnyMopp –

答えて

0
int rows; 
    cout << "Enter a number: "; 
    cin >> rows; 
    for (int y = rows; y > 0; --y) 
    { 
     for (int x = rows; x > 0; x--) 
     { 
      if (x <= y) cout << x << " "; 
      else cout << "* "; 
     } 
     cout << endl; 
    } 
+1

Ohhhhhhhhh if-elseステートメント。私は本当にそのことについても考えなかった。どうもありがとうございます! –

0

これは、あなたがそれを行うことができる方法である:

cout << "Enter a number: "; 
cin >> rows; 
for (int y = rows; y > 0; --y) 
{ 
    for(int h = rows-y; h>0; --h){ 
     cout<<"*"; 

    } 
    for (int x = y; x >= 1; --x) 
    { 

     cout << x << " "; 
    } 
    cout << endl; 
}