Voila je viens de débuter en C++ et je cherche a faire une procédure de décomposition ALU...

Mon problème est que ma procédure ne donne que la moitié des résultats qu elle devrait donner (seulement le L et pas le U)

Bon donc j'ai écrit un truc sous le type void qui prend comme variable des matrices (déclarées en fait en tant que float [N][N])) les variables en sont A, L et U...

Au cours de la procédure tous les calculs se passent bien (j'ai rajouté des sorties intermédiaires) et donc la procédure calcule les bons L et U ici on est juste avant la dernière accolade de la procédure ALU...

Seulement lorsque j'utilise la procédure dans un programme, seule la matrice L ressort correctement, U semble perdue et donne une matrice a peu près nulle (avec des coefficient en e-40)....

En gros je ne comprend pas comment U peut passer de la bonne valeur a un truc non initialisé en l'espace d'une accolade, tandis que L se comporte normalement...

voici la structure de la procédure (je ne détails pas la source a priori les calculs se passent bien) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
        void ALU(float L[N][N], U[N][N], A[N][N])
                    {
                      calcul de L et U ....
                      affichage de L et U, les deux sont corects
                     }
Et le problème c'est que si dans un programme je fais
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
           ALU(L,U,A);
           afficher( L);
           afficher(U);
eh bien L est correcte, tandis que U est nulle...


Merci de votre aide.