una subindice programacion matriz llenar imprimir c++ arrays compiler-errors

c++ - subindice - llenar e imprimir una matriz en c



tipos inválidos ''int[int]'' para subíndice de matriz (4)

Este código arroja el error de compilación que figura en el título, ¿alguien me puede decir qué cambiar?

#include <iostream> using namespace std; int main(){ int myArray[10][10][10]; for (int i = 0; i <= 9; ++i){ for (int t = 0; t <=9; ++t){ for (int x = 0; x <= 9; ++x){ for (int y = 0; y <= 9; ++y){ myArray[i][t][x][y] = i+t+x+y; //This will give each element a value } } } } for (int i = 0; i <= 9; ++i){ for (int t = 0; t <=9; ++t){ for (int x = 0; x <= 9; ++x){ for (int y = 0; y <= 9; ++y){ cout << myArray[i][t][x][y] << endl; } } } } system("pause"); }

gracias por adelantado


Está suscribiendo una matriz tridimensional myArray[10][10][10] cuatro veces myArray[i][t][x][y] . Probablemente necesites agregar otra dimensión a tu matriz. Considere también un contenedor como Boost.MultiArray , aunque probablemente eso esté por encima de su cabeza en este punto.


¿Qué cambiar? Además del problema de la matriz tridimensional o dimensional, debes deshacerte de los números mágicos (10 y 9).

const int DIM_SIZE = 10; int myArray[DIM_SIZE][DIM_SIZE][DIM_SIZE]; for (int i = 0; i < DIM_SIZE; ++i){ for (int t = 0; t < DIM_SIZE; ++t){ for (int x = 0; x < DIM_SIZE; ++x){


Está intentando acceder a una matriz tridimensional con 4 des-referencias

Solo necesita 3 bucles en lugar de 4, o int myArray[10][10][10][10];


int myArray[10][10][10];

debiera ser

int myArray[10][10][10][10];