[C++] Matrici 3-D

sangi89
Buonasera a tutti. devo creare delle matrici n*n con k elementi in ogni casella in modo tale che tali elementi vadano da 1 ad n e compaiano in ogni riga e colonna esattamente k volte.
ho creato la matrice ed ho inserito il comando while per controllare se l'elemento inserito sia compreso effettivamente da 1 ad n, ma il mio programma in esecuzione non legge affatto il comando while non riportandmi quindi il messaggio di errore. Questo è il codice:
#include <stdio.h>
#include <math.h>
#include "boost/multi_array.hpp"
#include <iostream>
#include "boost/array.hpp"
typedef boost::multi_array<double, 3> two_d_array_type;
int main()
{
    int k,n,i,j,t;
    printf("Inserisci l'indice'");
    scanf("%d",&k);
	printf("Inserisci l'ordine''");
    scanf("%d",&n);
    two_d_array_type A(boost::extents[n][n][k]);
    for (i=0; i<n; i++){
        for (j=0; j<n; j++){
        		for(t=0; t<k; t++){
            printf( "Inserisci l'elemento di posto' [%d][%d][%d]: ", i, j, t);
            scanf("%d",&A[i][j][t]);
             		while ( (A[i][j][t]>1)|| (A[i][j][t]<0) ){ /*controlla che il valore sia compreso tra 0 ed n*/
         			printf("Valore errato. Inserisci nuovamente l'elemento di posto' [%d][%d][%d]: ", i, j, t);
          			scanf("%d", &A[i][j][t]); /*acquisisci nuovamente il valore*/
           			}
                }
		}

    }
   for (i=0;i<n;i++){
        for(j=0;j<n;j++){
	printf("|");			
        for(t=0; t<k; t++)

        {
        printf("%d ", A[i][j][t]);
        
        } //printf("|");
  
    }      printf("| \n"); 
 
    }
    
 
 
    return(0);
}
    

qualcuno mi sa aiutare?

Risposte
Super Squirrel
Non ho ben capito cosa dovrebbe fare il programma... cioè bisogna creare una matrice tridimensionale a base quadrata n*n, ossia abbiamo una griglia di n*n posti e in ogni posto andranno messi un certo numero di elementi (minimo 1) che andranno a costituire la terza dimensione?
la terza dimensione è data da k che è compreso tra 1 e n?
se si, k è lo stesso per ogni posto (in questo caso la matrice assumerebbe la forma di un parallelepipedo a base quadrata) oppure no?
cosa intendi poi con "compaiano in ogni riga e colonna esattamente k volte" ?

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.