Loppy2323
Loppy2323

Reputation: 82

Output a triangle of numbers in C++

My task is to ask the user for an int, then output a "number triangle" like the one below (in this case, the int is equal to 5).

0 1 2 3 4 5
  0 1 2 3 4
    0 1 2 3
      0 1 2
        0 1
          0

However, the code which I have written for this task outputs this:

0 1 2 3 4 5
0 1 2 3 4
0 1 2 3
0 1 2
0 1
0

For reference, here is my code:

#include <iostream>
    
using namespace std;

int main() {
        
    int size;
    cout << "Size: " << std::endl;
    cin >> size;
    
     for(int i = size; i >= 0; i--)
        {
            for(int j = 0; j <= i; j++)
           {
                if (j < i){
                    cout << j << " ";
                }
                else{
                    cout << j << " ";}
    
           }
            cout << endl;
    
        }
    
     
        return 0;
    }

Can somebody tell me what to change in my program to make it output the correct triangle? Thanks in advance.

Upvotes: 0

Views: 219

Answers (1)

Christopher Miller
Christopher Miller

Reputation: 3461

You should print the spaces at the beginning of the line instead of at the end.

for(int i = size; i >= 0; --i){
    for(int j = 0; j < size-i; ++j){cout << "  ";} // spaces at the beginning

    for(int j = 0; j <= i; ++j){
        cout << j << " ";
    }
    cout << endl;
}

Upvotes: 1

Related Questions