Advertisement
FrancescoMontagno

Allocare matrici

Nov 20th, 2019
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.64 KB | None | 0 0
  1.   char s[SL];
  2.   int righe,j, colonne,i;
  3.   int **ppf;
  4.   FILE *pfile;
  5.  
  6.   printf("inserire il numero di righe desiderate per la matrice: ");
  7.   scanf("%s", s);
  8.   righe=atoi(s);
  9.  
  10.   ppf=(int**)malloc(sizeof(int*) * righe);
  11.   printf("inserire il numero di colonne desiderate per la matrice: ");
  12.   scanf("%s", s);
  13.   colonne=atoi(s);
  14.   for(j=0; j<righe; j++)
  15.    ppf[j]=(int*)malloc(sizeof(int)*colonne);
  16.    
  17.   for(i=0; i<righe; i++)
  18.    {
  19.     for(j=0; j<colonne; j++)
  20.      {
  21.       printf("Inserire l'elemento %d, %d: ",i+1,j+1);
  22.       scanf("%s",s);
  23.       ppf[i][j]=atoi(s);
  24.      }
  25.    }
  26.    
  27.    //questa parte scrive sul file binario gli elementi della matrice
  28.    pfile=fopen(FILE_OUT, "wb");
  29.    fwrite(&righe, sizeof(int), 1, pfile); //il primo elemento contiene il numero di righe
  30.    fwrite(&colonne, sizeof(int), 1, pfile); //il secondo elemento contiene il numero di colonne
  31.    for(i=0; i<righe; i++)
  32.     fwrite(ppf[i], sizeof(int), colonne, pfile);
  33.    fclose(pfile);
  34.    free(ppf);
  35.  
  36.    //questa parte legge gli elementi di un file binario e li mette in una matrice
  37.        
  38.    pfile=fopen(FILE_OUT, "rb");
  39.    fread(&righe, sizeof(int), 1, pfile);
  40.    fread(&colonne, sizeof(int), 1, pfile);
  41.    ppf=(int**)malloc(sizeof(int*) * righe);
  42.    for(j=0; j<righe; j++)
  43.     ppf[j]=(int*)malloc(sizeof(int)*colonne);
  44.    
  45.    for(i=0; i<righe; i++)
  46.     fread(ppf[i], sizeof(int), colonne, pfile);
  47.    fclose(pfile);
  48.    printf("Estraggo matrice...\n\n\n");
  49.    for(i=0; i<righe;i++) //stampa gli elementi letti dal file binario
  50.     {
  51.      for(j=0; j<colonne; j++)
  52.       printf("\t%d", ppf[i][j]);
  53.      printf("\n");
  54.     }
  55.    free(ppf);
  56.  }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement