Bonjour tous le monde ,
J'ai écris un programme qui lit une matrice composée par des 0 et des 1, puis supprime chaque colonne nul avec la ligne correspondante a cette colonne et implémente en même temps un tableau par l'indice de la colonne supprimée, mais ça marche pas , j'ai vraiment besoin de ce programme. qui peut m'aider ?

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
//la fonction chargée de la décomposition de la matrice
int* decomposition(int N,int **matrice)
{
int found,I,J,i=0;
int *Tab;
int k=0;
 
Tab = (int*)malloc( sizeof(int*)*(N));
 
for(J=0;J<N;J++){   
        for(I=0;I<N;I++){
          if(matrice[I][J] ==0)
           found=0;
           else
           found =1;
         }
 
       if(found == 0){
       matrice= suppElem( matrice, N, J ); 
       Tab[i]=J;
       i++;
       }
       else
      J++;
       }
return Tab;
} 
 
//la fonction chargée de la suppression de la colonne avec la ligne correspondante
int** suppElem( int** matrice, int N, int elem_a_sup ){
 int i, j, l = 0,c = 0;
 int **Mat1=NULL,**Mat2=NULL;
 
Mat1 = (int**) malloc( sizeof(int*) * (N-1) );
 if( Mat1 != NULL )
 for( i=0; i<(N-1); i++ )
 Mat1[i] = (int*) malloc( sizeof(int) * (N-1) ); 
 
Mat2 = (int**) malloc( sizeof(int*) * (N-1) );
 if( Mat2 != NULL )
 for( i=0; i<(N-1); i++ )
 Mat2[i] = (int*) malloc( sizeof(int) * (N-1) ); 
 
 for( j=0; j<N; j++ ){
 if( j != elem_a_sup ) {
for( i=0; i<N; i++ )
 {
 Mat1[l][c] = matrice[i][j];
 l++;
 }
  c++;
  l=0;}
 }
 
for( i=0; i<N; i++ ){
 if( i != elem_a_sup ) 
for( j=0; j<N; j++ )
 {
 Mat2[l][c] = matrice[i][j];
 c++;
 }
  l++;
  c=0;
 }
 
   for( i=0; i<N; i++ )
 free( Mat1[i] );
 free( Mat1 ); 
 
return Mat2;
 }