Bonjour à tous, je suis nouveau

je debute des etudes où nous faisons de la programation.

Alors voila, je dois faire un exercice pour afficher "Un table de produit pour N allant de 0 à 10"

Cela devrait ressembler a peu près a ça:

X*Y I   0   1   2   3   4   5   6   7   8   9  10
--------------------------------------------------
  0  I   0   0   0   0   0   0   0   0   0   0   0
  1  I   0   1   2   3   4   5   6   7   8   9  10
  2  I   0   2   4   6   8  10  12  14  16  18  20
  3  I   0   3   6   9  12  15  18  21  24  27  30
  4  I   0   4   8  12  16  20  24  28  32  36  40
  5  I   0   5  10  15  20  25  30  35  40  45  50
  6  I   0   6  12  18  24  30  36  42  48  54  60
  7  I   0   7  14  21  28  35  42  49  56  63  70
  8  I   0   8  16  24  32  40  48  56  64  72  80
  9  I   0   9  18  27  36  45  54  63  72  81  90
 10  I   0  10  20  30  40  50  60  70  80  90 100
Le soucis, c'est que dans mes boucles (voir bout de code plus loin), j'ai du définir un espace entre chaque affichage de variable.
Quand la valeur passe à 2 décimale, tout, TOUT ce décale.
Y a y-il un moyen de faire pour que les décimales empiètent sur les espace les précédents ?

Voici le bout de code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <conio.h>
#include <stdlib.h>
 
using namespace std;
void F_exo5( )
{ system("cls");
    cout << "Afficher la table des produits pour N variant de 0 a 10" << endl;
    cout << "=================================\n\n";
 
    int i,j;
    cout << "X*Y I   ";
    for (j=0;j<=10;j++)
        cout << j << "   ";
    cout << endl << "---";
    for (j=0;j<=10;j++)
       cout << "-----";
    cout << endl;
    for(i=0;i<=10;i++)
    {
        cout << i <<"   I";
        for(j=0;j<=10;j++)
            cout << "   " <<i*j;
        cout << endl;
    }
    _getch( );
}