Ritorna alla pagina del corso.

Questa pagina contiene gli esercizi proposti in laboratorio e -alcune- delle soluzioni proposte.
Si suggerisce di provare a risolvere gli esercizi e solo in un secondo tempo di confrontare quanto fatto con le soluzioni proposte.

01: /*
02: 5. Allocazione dinamica array bidimensionali: si chieda all'utente le
03:    dimensioni di una matrice, si allochi dinamicamente una matrice di
04:    float avente quelle dimensioni (usando **), si leggano da tastiera
05:    gli elementi della matrice e la si stampi (in maniera ordinata)
06: */
07: #include<stdio.h>
08: #include<stdlib.h>
09: 
10: int main(int argc, char **argv){
11: 
12:   int r,c;
13:   printf("Inserire righe e colonne della matrice desiderata: ");
14:   scanf("%d%d", &r, &c);
15: 
16:   float **matr;
17: 
18:   // 1. alloco array di r puntatori per ciascuna riga
19:   matr = malloc(r * sizeof(float *));
20: 
21:   // 2. alloco le r righe usando il precedente array
22:   for(int ir = 0; ir < r; ++ir)
23:     matr[ir] = malloc(c * sizeof(float));
24: 
25: 
26:   // da questo momento in poi la sintassi per l'uso
27:   // degli elementi allocati dinamicamente e' la stessa
28:   // di un array bidimensionale!
29: 
30: 
31: 
32:   // chiedo all'utente i valori della matrice
33:   for(int ir = 0; ir < r; ++ir)
34:     for(int ic = 0; ic < c; ++ic)
35:     {
36:       printf("Inserisci il valore di indici  (%d, %d): ", ir, ic);
37:       scanf("%f", &matr[ir][ic] );  // sintassi identica array bidimensionali statici
38:     }
39: 
40: 
41:   // TODO completare
42: 
43: 
44: 
45:   return 0;
46: }
47: 
48: