1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
#include<stdio.h>
#include<stdlib.h>
class Array3D {
public:
Array3D(int d1, int d2, int d3) :
size1(d1), size2(d2), size3(d3) {
p = new int[size1*size2*size3]();
}
int &elem(int i, int j, int k) {
return p[i*size2*size3 + j*size2 + k];
}
~Array3D() { delete[] p; }
private:
Array3D(const Array3D &); // private because not supported
int size1, size2, size3;
int *p;
};
int
main()
{
int l, m, n;
int i, j, k;
//Richiedo in input il numero di righe e colonne della base
printf("Numero di righe della matrice: ");
scanf("%d", &l);
printf("\nNumero di colonne della matrice: ");
scanf("%d", &m);
//Richiedo il numero di volte che deve essere ripetuta tale tabella
//ovvero l'altezza del "parallelepipedo"
printf("\nNumero della profondita' della matrice: ");
scanf("%d", &n);
Array3D matrix(l, m, n);
//Richiedo i valori da inserire nel vettore tridimensionale...
for (i = 0; i < l; i++) {
for (j = 0; j < m; j++) {
for (k = 0; k < n; k++) {
printf("Inserire l'elemento in posizione [%d][%d][%d]: \n", i,
j, k);
scanf("%d", &matrix.elem(i,j,k));
}
}
}
//... e li stampo a video
for (i = 0; i < l; i++) {
for (j = 0; j < m; j++) {
for (k = 0; k < n; k++) {
printf("L'elemento in posizione [%d][%d][%d] e': %d\n", i, j,
k, matrix.elem(i,j,k));
}
}
}
return 0;
}
|