ciao a tutti ,giusto per imparare sto realizzando un " pacchetto " dii programmi in C che abbia le seguenti caratteristiche:

uno dei programmi legge da file una matrice quadrata (scritta da un altro prog con successo) e scrive su un altro file il risulatato della eliminazione di gauss (senza pivotng ma la versione semplificata)..
ed il valore deldeterminante....


lo scopo è di ripetere l'esecuzione del pacchetto un numero grande di volte e siccome la matrice di partenza è sempre diversa , studiare la distribuzione o istogramma del determinante .....


mi potete dare qualche consiglio? e poi guardate cosa mi da in output il programma (che è compilato senza errori)

velo posto
ma premetto che questa versione è di prova: nn dovrebbe applicare nessun algoritmo alla matrice ma solo ristamparla ugualle in un altro file,,,,giusto per vedere l'uso di fscanf con gli array...poi parliamo della eiminazione se vedo che nn trovo soluzioni
grazie in anticipo

codice:
#include <stdio.h> 
#include <stdlib.h>


#define MAXCOL 10


int i,j;
double  mat[MAXCOL][MAXCOL];  
double  triang[MAXCOL][MAXCOL];
double det ;	


double eliminazione (double  mat[MAXCOL][MAXCOL]); 
double determinante (double  triang[MAXCOL][MAXCOL] );



int main (){
double det ;
double mat [MAXCOL][MAXCOL];

FILE *outfile ;
FILE *outfile1 ;
outfile1 = fopen("matrici.dat", "r");
outfile = fopen("det.dat", "w");


 
for (i=0 ;  i<MAXCOL;i++){
  for (j= 0; j< MAXCOL;j++){
fscanf(outfile1, "%f \n ", &mat[i][j]);
printf("%f        " , mat [i][j]);

  }
  
printf("\n");

}

/*
for (i=0 ;  i<MAXCOL;i++){
  for (j= 0; j< MAXCOL;j++){


  fprintf (outfile ,"%f                                         ",mat[i][j] );
  }
fprintf(outfile, "\n           ");
} 	
*/
triang[i][j] = eliminazione (mat) ;

det = determinante (triang);
 //printf("\n\n\n" );
 // printf("%f\n", det );
fclose (outfile);
fclose (outfile1);
return 0;
 }


double eliminazione ( double mat [MAXCOL][MAXCOL]) {
  int i,j,k;
  double triang [MAXCOL][MAXCOL];
  double  tmp[MAXCOL][MAXCOL];



    for (k=0 ; k < MAXCOL;  k++){
  
	for (i = k +1 ;i < MAXCOL; i++){
      
      
      
      tmp [i][k] =  mat[i][k] ;
      
      for (j = k; j < MAXCOL +1 ; j ++ ){
	//triang [i][j]  =  - tmp/ mat[i][k] ;
    }
    }    
}
      
 return triang[MAXCOL][MAXCOL] ;
 
}
  
  double determinante (double triang [MAXCOL][MAXCOL]){
  int i;
  double det = 1; 
  for (i =0 ; i< MAXCOL ; i++){
    det *= triang [i][i];
  }
  
  return det;
  }