Array bidimensionali (Matrici)

L'implementazione degli array moltiplica le nostre possibilità di gestire i dati. In particolare è notevole la possibilità di poter definire un array come elemento di un altro array. Questo ci permette di implementare array multidimensionali e risolvere problemi legati, per esempio allo spazio tridimensionale, o anche a più dimensioni.

Dopo l'array monodimensionale (vettore), l'applicazione più frequente è quella degli array bidimensionali. In questo caso al nome della matrice deve essere associata una coppia di indici per indicare la riga e la colonna del particolare elemento della matrice oggetto dell'elaborazione.

5 4 1 -5
9 12 3 -1
2 8 -2 6
14 8 15 7

Ricordando che gli indici di riga e colonna partono da 0, è evidente che scrivere MAT[2,2] vuol dire indicare il valore -2. MAT[0,3] indica il valore -5 e MAT[3,2] indica il valore 15.

Realizziamo subito un programma in grado di calcolare la somma degli elementi della diagonale principale di una matrice quadrata (quindi n x n ) e la somma degli elementi della diagonale secondaria. Osservate bene l'uso dei due indici della matrice.

#include 
#include 

int main()
{	int mat[10][10];
    	int n, i, j;
    
	// lettura della matrice 
     	printf("Numero di righe e colonne: "); scanf("%d",&n);
     	printf("Inserisci gli elementi della matrice (%2d,%2d)\n",n,n);
     	for (i=0; i<; i++)
        {	printf("\nElementi della riga %2d\n",i+1);
               	for (j=0;j<n;j++)
               	{	printf("Colonna %2d - ",j+1);
                  	scanf("%3d",&mat[i][j]);
               	}
        }
  	printf("\n\n");

	// Calcolo della sommatoria degli elementi della diagonale principale    	
	int somma =0;
    	for (i=0;i<n;i++)
        	somma += mat[i][i];
 	printf("Somma della diagonale principale: %3d\n", somma);
    	
	// Calcolo della sommatoria degli elementi della diagonale secondaria
	somma=0;    	
	for (i=0;i<n;i++)
        	somma += mat[i][n-i-1];
    	printf("Somma della diagonale secondaria: %3d\n", somma);

	system("PAUSE");
    	return 0;
}

Scrivi email per il tutor dei corsi
Scrivi email per l'amministratore del sito

Torna all'indice del corso
Ultima modifica: 08/04/2010