Inserire valori in una matrice in C
In questo esercizio cercheremo di realizzare un programma in grado di farci inserire valori in una matrice, le cui dimensioni sono definite da due costanti R e C (rispettivamente, righe e colonne).
Definite le macro R e C utilizzando la direttiva #define, possiamo dichiarare la nostra matrice, che non è altro che un array bidimensionale. Di conseguenza se un array viene normalmente dichiarato come mat[C], per definire un array bidimensionale dobbiamo aggiungere una coppia di parentesi quadre, ovvero mat[R][C]. In questo modo abbiamo definito una variabile mat che ha la seguente struttura:
con R=3, C=3
[ ] [ ] [ ]
[ ] [ ] [ ]
[ ] [ ] [ ]
con R=4, C=3
[ ] [ ] [ ]
[ ] [ ] [ ]
[ ] [ ] [ ]
[ ] [ ] [ ]
Ora possiamo far inserire all’utente dei valori nella matrice. Se in un array monodimensionale ci basta usare un ciclo for per scorrere ogni singola cella, ora abbiamo bisogno di due cicli for. Il primo ciclo (quello esterno) viene usato per scorrere le righe mediante la variabile i, mentre il secondo ciclo (quello interno) viene usato per scorrere le colonne usando la variabile j.
Pertanto se la variabile i = 0 (cioè siamo alla prima riga della matrice), j ci permette di scorrere l’intera riga assumendo valori tra 0 e C, del tipo [0][0], [0][1], [0][2],... una volta che j raggiunge il valore C il secondo ciclo for termina, quindi nel primo for la variabile i viene incrementata di uno (cioè ci troviamo nella seconda riga) e la variabile j ripartendo da 0 a C, permettendo nuovamente di scorrere l’intera riga, del tipo [1][0], [1][1], [1][2],...
Questo processo continua fino a che non vengono passate tutte le celle che si trovano nella matrice.
for(int i = 0; i < R; i++){
for(int j = 0; j < C; j++){
printf("Inserisci valore: ");
scanf("%d", &mat[i][j]);
}
}
Una volta inseriti tutti i valori non ci resta che visualizzare il contenuto della matrice. Anche in questo caso abbiamo bisogno di due cicli for per poter scorrere ogni singola cella e stampare il valore contenuto.
Programma completo per inserire numeri in una matrice
Di seguito viene riportato il programma completo per poter inserire in una matrice di dimensione [R][C] dei numeri e di successivamente visualizzare a video il contenuto.
#include <stdio.h>
#define R 3
#define C 3
int main(){
int mat[R][C];
for(int i = 0; i < R; i++){
for(int j = 0; j < C; j++){
printf("Inserisci valore: ");
scanf("%d", &mat[i][j]);
}
}
for(int i = 0; i < R; i++){
for(int j = 0; j < C; j++){
printf("%d ", mat[i][j]);
}
printf("\n");
}
return 0;
}
Indice pagine di c
Indice cPagine aggiunte di recente
Indice pagine del linguaggio C: Funzioni, Stringhe, ArrayCome effettuare la radice quadrata con la funzione sqrt in CCome ottenere il valore assoluto con la funzione abs in CCome generare numeri casuali con la funzione rand in CCome generare numeri casuali tra due numeri in C