|
// Dichiarazione della matrice come puntatore a un vettore
double *M;
int R, C;
int i, j;
double v;
// Inserimento del numero di righe e colonne della matrice
cout << "Righe e colonne: ";
cin >> R >> C;
// Creazione del vettore in grado di contenere R*C elementi
M = new double [R*C];
// Ciclo infinito: uscita con break
while ( 1 ) {
|
// Lettura degli indici dell'elemento da inserire o leggere
cout << "Riga e colonna della matrice: ";
cin >> i >> j;
// L'utente viene invitato a inserire un valore alla riga i, colonna j
// oppure a scrivere 0 se desidera leggere quanto è contenuto in quella posizione
cout << "Valore (0 se si desidera leggerlo, negativo per uscire)";
cin >> v;
if ( v < 0 )
if ( v != 0 )
|
// inserimento del valore alla posizione corretta del vettore.
// Notare la traduzione esplicita dai due indici matriciali all'unico indice per il vettore
M[i*C+j] = v;
|
else
|
// Scrittura del contenuto del vettore alla posizione richiesta
cout << M[i*C+j] << endl;
|
|
}
// Liberazione dello spazio allocato per la matrice
delete[] M;
return 0;
|