nikpez di nikpez
Ominide 738 punti

Allocazione dinamica matrice - Esercizio

Scrivi una funzione C/C++ che crea e restituisce una matrice triangolare di interi i cui elementi hanno valori 1, 2, 3, ... . Naturalmente, la matrice deve essere allocata dinamicamente e non bisogna usare più memoria di quella strettamente necessaria.
Ad esempio se l’ordine (della matrice) è 5 la funzione deve creare la matrice:
1 2 3 4 5
6 7 8 9
10 11 12
13 14
15
Scrivi l’istruzione di chiamata e definisci tutte le variabili necessarie.
Definizione (codifica) della funzione:
int **matriceTriang(int ordine)
{
int **m = (int **) malloc(ordine*sizeof(int *)); //Alloca il vettore delle righe
int r, c, numCol = ordine, k = 1;
for (r = 0 ; r < ordine ; r++) //Per ogni riga della matrice...
{
m[r] = (int *) malloc(numCol*sizeof(int)); //Alloca la riga r-esima

for (c = 0 ; c < numCol ; c++) //Assegna i valori agli elementi della riga r-esima.
{
m[r][c] = k;
k++;
}
numCol--;
}
return m;
}
int ** matrix;
int ordine;
matrix = matriceTriang(ordine);

Registrati via email