Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: _Slash_ en 26 Noviembre 2014, 00:28 am



Título: C++ busqueda en arreglo multidimensional
Publicado por: _Slash_ en 26 Noviembre 2014, 00:28 am
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.

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main() {
  5.   int n, a = 0, b = 0, c = 0, x, y, z, multi[a][b][c];
  6.  
  7.   cout << "Digite 3 numeros separados con espacio (ejemplo: 3 3 3): ";
  8.   cin >> a >> b >> c;
  9.  
  10.   for (x = 0; x < a; x++) {
  11.      for (y = 0; y < b; y++) {
  12.         for (z = 0; z < c; z++) {
  13.            cout << "Digite el numero a ingresar para la posicion '" << x << " - " << y << " - " << z << "': ";
  14.    cin >> n;
  15.    multi[x][y][z] = n;
  16.         }
  17.      }
  18.   }
  19.  
  20.   cout << "Digite el numero a buscar :";
  21.   cin >> n;
  22.  
  23.   for (x = 0; x < a; x++) {
  24.      for (y = 0; y < b; y++) {
  25.         for (z = 0; z < c; z++) {
  26.            if (n == multi[x][y][z]) {
  27.               cout << "El numero se encuentro en la posicion '" << x << " - " << y << " - " << z << "': " << multi[x][y][z] << endl;
  28.    }
  29. }
  30.      }
  31.   }
  32. }
  33.  
  34.  


Título: Re: C++ busqueda en arreglo multidimensional
Publicado por: MeCraniDOS en 26 Noviembre 2014, 06:48 am
Hola,

El primer error que veo es este, fíjate

Código
  1.   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


Título: Re: C++ busqueda en arreglo multidimensional
Publicado por: _Slash_ en 26 Noviembre 2014, 17:23 pm
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:

Código
  1. int n, a, b, c, x, y, z;
  2.  
  3. cout << "Digite 3 numeros separados con espacio (ejemplo: 3 3 3): ";
  4. cin >> a >> b >> c;
  5.  
  6. int multi[a][b][c];

Gracias por la observación MeCraniDOS.

Saludos.