Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] Sentencia IF, no muestra contenido de Array´s [C++]

Estas en el tema de Sentencia IF, no muestra contenido de Array´s [C++] en el foro de C/C++ en Foros del Web. Buenas, Tengo un problema con mostrar el contenido de los arrays. Este es el código: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código C++: Ver original #include <iostream>   using ...
  #1 (permalink)  
Antiguo 09/03/2015, 13:17
Avatar de Tropy  
Fecha de Ingreso: diciembre-2013
Mensajes: 62
Antigüedad: 10 años, 11 meses
Puntos: 1
Sentencia IF, no muestra contenido de Array´s [C++]

Buenas,

Tengo un problema con mostrar el contenido de los arrays.

Este es el código:

Código C++:
Ver original
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. struct Personaje{
  6.     char nombre[30];
  7.     int edad;
  8.     char empresa[30];
  9. };
  10.  
  11. int main(){
  12.    
  13.     Personaje *Trabajador = new Personaje[20]; // Reservamos espacio con new
  14.    
  15.     int i;
  16.     string nombre;
  17.    
  18.     for(i = 0; i < 2; i++){ // Se repite el proceso hasta 2 veces
  19.         cout << "Nombre: ";
  20.         cin >> Trabajador[i].nombre;
  21.        
  22.         cout << "Edad: ";
  23.         cin >> Trabajador[i].edad;
  24.        
  25.         cout << "Empresa: ";
  26.         cin >> Trabajador[i].empresa;
  27.        
  28.         delete Trabajador; // Liberamos memoria
  29.     }
  30.    
  31.     cout << "Introduce el nombre del trabajador: ";
  32.     cin >> nombre;
  33.        
  34.     if(nombre == Trabajador[i].nombre){ // Comprobamos si el arrai es igual a la variable
  35.         cout << "Nombre: " << Trabajador[i].nombre << endl;
  36.         cout << "Edad: " << Trabajador[i].edad << endl;
  37.         cout << "Empresa: " << Trabajador[i].empresa << endl;
  38.     }else;
  39.    
  40.     cin.get();
  41.     return 0;
  42. }

Y el problema es que no se me visualiza el contenido del if:



Se queda así, cuándo me debería mostrar los resultados.
Agradecería que me pudieran echar un cable.

Saludos.

Última edición por Tropy; 09/03/2015 a las 13:23
  #2 (permalink)  
Antiguo 09/03/2015, 14:36
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 14 años, 1 mes
Puntos: 10
Respuesta: Sentencia IF, no muestra contenido de Array´s [C++]

Hola:

Yo veo los siguientes fallos:

Has liberado la memoria antes de hacer las comprobaciones. Además has de usar la forma delete[];

Además, para hacer la comprobación, deberás recorrer todos los valores en un bucle, de la misma forma que has usado para hacer las asignaciones.

Además tienes un else sin definir.

Saludos!
__________________
Mi calculadora en Qt
  #3 (permalink)  
Antiguo 09/03/2015, 14:44
Avatar de Tropy  
Fecha de Ingreso: diciembre-2013
Mensajes: 62
Antigüedad: 10 años, 11 meses
Puntos: 1
Respuesta: Sentencia IF, no muestra contenido de Array´s [C++]

Cita:
Iniciado por dehm Ver Mensaje
Hola:

Yo veo los siguientes fallos:

Has liberado la memoria antes de hacer las comprobaciones. Además has de usar la forma delete[];

Además, para hacer la comprobación, deberás recorrer todos los valores en un bucle, de la misma forma que has usado para hacer las asignaciones.

Además tienes un else sin definir.

Saludos!
Gracias por tu respuesta,

He quitado la liberación de memoria, y quitado el else no innecesariamente.

Pero estoy un poco atrapado en:

Código:
Además, para hacer la comprobación, deberás recorrer todos los valores en un bucle, de la misma forma que has usado para hacer las asignaciones.
Yo se que si introduzco el if dentro del bucle me funciona, pero no de la manera que yo busco.

Ya que me da este resultado:



Y es que cada vez que introduzco un dato me pregunta el nombre del trabajador, y es por el for que hace repetirlo, pero si lo saco fuera del for me da el resultado obtenido entre comillas pero no me muestra el resultado esperado.

Saludos.
  #4 (permalink)  
Antiguo 09/03/2015, 14:48
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 14 años, 1 mes
Puntos: 10
Respuesta: Sentencia IF, no muestra contenido de Array´s [C++]

Hola:
Sería algo así:
Código C++:
Ver original
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. struct Personaje
  6. {
  7.     char nombre[30];
  8.     int edad;
  9.     char empresa[30];
  10. };
  11.  
  12. int main()
  13. {
  14.  
  15.     Personaje *Trabajador = new Personaje[20]; // Reservamos espacio con new
  16.     const int TotalTrabajadores=2;
  17.  
  18.     int i;
  19.     string nombre;
  20.  
  21.     for(i = 0; i < TotalTrabajadores; i++)
  22.     {
  23.         cout << "Nombre: ";
  24.         cin >> Trabajador[i].nombre;
  25.  
  26.         cout << "Edad: ";
  27.         cin >> Trabajador[i].edad;
  28.  
  29.         cout << "Empresa: ";
  30.         cin >> Trabajador[i].empresa;
  31.     }
  32.  
  33.     cout << "Introduce el nombre del trabajador: ";
  34.     cin >> nombre;
  35.     for (int i=0; i<TotalTrabajadores; i++) //un bucle para recorrer todos los trabajadores posibles
  36.     {
  37.  
  38.  
  39.  
  40.         if(nombre == Trabajador[i].nombre)
  41.         {
  42.             cout << "Nombre: " << Trabajador[i].nombre << endl;
  43.             cout << "Edad: " << Trabajador[i].edad << endl;
  44.             cout << "Empresa: " << Trabajador[i].empresa << endl;
  45.         }
  46.     }
  47.  
  48.     cin.get();
  49.     delete[] Trabajador; // Liberamos memoria
  50.     return 0;
  51. }
__________________
Mi calculadora en Qt
  #5 (permalink)  
Antiguo 09/03/2015, 14:55
Avatar de Tropy  
Fecha de Ingreso: diciembre-2013
Mensajes: 62
Antigüedad: 10 años, 11 meses
Puntos: 1
Respuesta: Sentencia IF, no muestra contenido de Array´s [C++]

Muchas gracias, ahora ya más o menos me hago la idea... examinaré el código y veré haber como funciona y lo pondré en práctica.

Gracias por la ayuda y disculpa las molestias ocasionadas.

Saludos.
  #6 (permalink)  
Antiguo 09/03/2015, 15:02
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 14 años, 1 mes
Puntos: 10
Respuesta: Sentencia IF, no muestra contenido de Array´s [C++]

En absoluto molestias. Para eso sirve el foro.
Básicamente la idea es que al igual que hay que hacer un bucle para insertar los n componentes del array, hay que hacer otro bucle para recorrerlos en busca del valor que quieres buscar.
Siempre se podría optimizar un poco, de forma que en el momento en el que encuentre dicho valor, salga del bucle, ya que de la forma en que está ahora, una vez encontrado el valor seguirá recorriendo el bucle. Pero eso ya es otra historia.

Saludos!
__________________
Mi calculadora en Qt

Etiquetas: char, contenido, int, muestra, sentencia
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:13.