Remplir sous la diagonale d'un tableau 2D
Bonsoir !
Je voudrais réussir à faire un tableau comme ceci :
15
10 14
6 9 13
3 5 8 12
1 2 3 4 7 11
A partir d'un tableau à deux dimensions de taille [n][n]
Je suis donc partie du principe que le nombre à insérer dans la première case était obtenu comme ceci :
for(l=0;l<=n;l++)
{
nombre=nombre+l;
}
ce qui me donne des résultats cohérents.
Seulement, lorsque j'essaie de remplir mon tableau, ça ne fait pas du tout ce que je souhaite. Je n'arrive pas à trouver la faute...
Si quelqu'un pouvait me mettre simplement sur la piste en montrant où mon raisonnement est faux, ce serait génial !
Code:
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
#include<iostream>
using namespace std;
#define TAILLE 100
void aff_matrice(int matrice[TAILLE][TAILLE], int n)
{
int i,j;
for(j=0;j<=n;j++)
{
for(i=0;i<j;i++)
{
cout<<matrice[i][j]<<" ";
}
cout<<endl;
}
}
void remp_sousdiag_matrice(int matrice[TAILLE][TAILLE], int n)
{
int i, j, nombre,l;
nombre=0;
for(l=0;l<=n;l++)
{
nombre=nombre+l;
}
for(j=0;j<=n;j++)
{
for(i=0;i<n;i++)
{
matrice[i][i+j]=nombre;
nombre=nombre-1;
}
}
}
int main(void)
{
int tableau[TAILLE][TAILLE], taille;
cin>>taille;
remp_sousdiag_matrice(tableau,taille);
aff_matrice(tableau,taille);
return 0;
} |