Ciao ragazzi spero possiate aiutarmi dato che sono nuovo su questo forum e inoltre è da poco che studio il linguaggio c. Ho questo problema da risolvere: "Costruzione di una matrice: lettura degli elementi e stampa a video della stessa. Come
memorizzo la matrice? Definisco io le dimensioni o sono a scelta dell’utente? Si può fare con un array?" Volevo innanzitutto chiedere se quel "come memorizzo la matrice?" richiede conoscenze sull'allocazione di una matrice in memoria. Ora vi posto quello che ho fatto io sulla base delle prime conoscenze acquisite:
codice:
#include <stdio.h>
#include <stdlib.h>
int main () {
int i, j;
int m, n;
int matrix[m][n];
printf("Inserire il numero di righe: ");
scanf("%d", &m);
printf("Inserire il numero di colonne: ");
scanf("%d", &n);
for(i=0;i<m;i++)
for(j=0;j<n;j++) {
printf("Inserire l'elemento [%d][%d]: ",i+1,j+1);
scanf("%d", &matrix[i][j]);
}
for(i=0;i<m;i++) {
for(j=0;j<n;j++)
printf("Elemento in posizione [%d][%d]: %d\n", i+1, j+1, matrix[i][j]);
}
system("PAUSE");
return 0;
}
Fino ai primi due cicli for non dovrebbero esserci problemi e il programma compila senza problemi, tuttavia quando vado a stampare i singoli elementi questi non sono corretti, ma riesce a stampare solo gli ultimi inseriti, come se scomparissero quelli di prima. Per questo motivo mi viene il dubbio che occorra obbligatoriamente allocare.
Grazie per le vostre risposte anticipatamente