matrici in linguaggio C

Realizziamo un algoritmo che permetta di inserire dati in una matrice, definita anche array bidimensionale, in cui le dimensioni sono definite dall’utente. Potete consultare un piccolo tutorial sulle matrici al seguente link.

Quindi i passaggi da seguire sono semplicemente questi:

  • Richiesta delle dimensioni
  • Inserimento dati
  • Visualizzazione matrice


Algoritmo in linguaggio C per inserire i dati in una matrice

Per prima cosa includiamo la libreria stdio.h tramite il comando

#include <stdio.h>

Poi definiamo il numero massimo di righe e di colonne, impostandole ad esempio al valore 100.

#define N 100
#define M 100

Quindi procediamo chiedendo di inserire il numero di righe e controllando che il valore inserito non sia maggiore di 100 (come definito sopra) e non sia minore di 1.
In poche parole se inserisco un numero minore di 1 oppure maggiore della dimensione massima delle righe il valore viene scartato e si richiede di nuovo l’inserimento.

do {
   printf("Dammi il numero di righe: ");
   scanf("%d", &m);
  } while ((m>M) || (m<1));

Lo stesso ragionamento lo facciamo pure per le colonne.

do {
    printf("Dammi il numero di colonne: ");
    scanf("%d", &n);
  } while ((n>N)|| (n<1));

Un semplice controllo dell’input insomma.

Adesso possiamo inserire i dati nella nostra matrice.
Quindi utilizziamo due cicli, uno più esterno che scandisce mediante la variabile i le righe e un altro più interno che percorre per mezzo della variabile j le colonne.
Iniziamo allora ad inserire l’elemento di posto (0,0) ovvero di riga zero e colonna zero poi l’elemento di posto (0,1) e così via.

Cioè si riempie tutta la prima riga, poi si passa alla seconda riga e così via.

printf("\nInseriamo i dati nella matrice \n");
for (i=0;i<m;i++)
   for (j=0;j<n;j++) {
        printf("Inserisci elemento di riga %d e colonna %d: ", i, j);
        scanf("%d", &a[i][j]);
    }

Infine non ci resta che visualizzare la nostra matrice. Per fare ciò utilizzeremo sempre due cicli for annidati uno nell’altro.

printf("\nStampiamo i dati \n");
    for (i=0;i<m;i++) {
    printf("\n");
       for(j=0;j<n;j++) 
         printf("\t%d", a[i][j]);                
    }

Programma completo per inserire e visualizzare i dati in una matrice.


#include <stdio.h>
#define N 100
#define M 100

int a[M][N];

main() {
int n,m,i,j;

do {
    printf("Dammi il numero di righe: ");
    scanf("%d", &m);
    } while ((m>M) || (m<1));

do {
    printf("Dammi il numero di colonne: ");
    scanf("%d", &n);
    } while ((n>N)|| (n<1));

printf("\nInseriamo i dati nella matrice \n");
for (i=0;i<m;i++)
    for(j=0;j<n;j++) {
        printf("Inserisci elemento di riga %d e colonna %d: ", i, j);
        scanf("%d", &a[i][j]);
    }

printf("\nStampiamo i dati \n");
for (i=0;i<m;i++) {
    printf("\n");
    for(j=0;j<n;j++) 
        printf("\t%d", a[i][j]);                
    }    
}   

Chiaramente ci possono essere altre soluzioni per implementare questo algoritmo, proponete pure la vostra.

Alcuni link utili:

Somma elementi diagonale principale di una matrice in C

Somma elementi cornice esterna in C

Sommare due matrici in C

Sommare i numeri di una matrice in C

Matrice trasposta in C

Prodotto tra matrici in C

Ricerca elementi in una matrice in C

Inserire dati in una matrice in C

Tavola pitagorica in C

Array multidimensionali in C

Programma sui triangoli in C

Media dei numeri in un array in C

Array con numeri random in C

Quick sort in C

Selection sort in C

Merge sort in C

Insertion Sort in C

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *