Hola que tal.
El programa en si, es que se ingrese manualmente la dimensión del arreglo, luego de eso pide llenar manualmente los datos para el arreglo, al finalizar el llenado, se pregunta que numero se desea buscar en el arreglo (los cuales se acaban de ingresar), aquí es donde tengo problemas, ya que falla en la búsqueda del numero, algunas veces si encuentra el numero que ingreso, pero me da una posición incorrecta o me duplica mas posiciones en el arreglo, otras veces no me muestra ninguna coincidencia.
Espero puedan ayudarme.
Saludos.
#include <iostream>
using namespace std;
int main() {
int n, a = 0, b = 0, c = 0, x, y, z, multi[a][b][c];
cout << "Digite 3 numeros separados con espacio (ejemplo: 3 3 3): ";
cin >> a >> b >> c;
for (x = 0; x < a; x++) {
for (y = 0; y < b; y++) {
for (z = 0; z < c; z++) {
cout << "Digite el numero a ingresar para la posicion '" << x << " - " << y << " - " << z << "': ";
cin >> n;
multi[x][y][z] = n;
}
}
}
cout << "Digite el numero a buscar :";
cin >> n;
for (x = 0; x < a; x++) {
for (y = 0; y < b; y++) {
for (z = 0; z < c; z++) {
if (n == multi[x][y][z]) {
cout << "El numero se encuentro en la posicion '" << x << " - " << y << " - " << z << "': " << multi[x][y][z] << endl;
}
}
}
}
}
Hola,
El primer error que veo es este, fíjate
int a = 0, b = 0, c = 0, multi[a][b][c];
Estas creando una matriz de 0x0x0
Revísalo, saludos
El recorrido es correcto, el único problema es el que te comento, creas la matriz con los valores de a, b y c, y luego asignas un valor diferente a esas 3 variables.
Revisa también que pasaria si introduces un numero negativo (en a,b,c).
Saludos
Hola que tal.
Tienes toda la razón MeCraniDOS, no me había fijado en ese pequeño detalle, ya corregí eso y funciona bien al realizar la búsqueda.
Esta fue la modificación que le hice al codigo:
int n, a, b, c, x, y, z;
cout << "Digite 3 numeros separados con espacio (ejemplo: 3 3 3): ";
cin >> a >> b >> c;
int multi[a][b][c];
Gracias por la observación MeCraniDOS.
Saludos.