Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: trioper en 2 Mayo 2017, 18:11 pm



Título: [RESUELTO] Mini Ayuda en bucle C++
Publicado por: trioper en 2 Mayo 2017, 18:11 pm
Hola a todos, estoy haciendo un programa el cual ingresas una pregunta y una respuesta
y luego en una especie de chat, te responde lo que preguntes.
las preguntas y respuestas se guardan en:
Código
  1. string preguntas[100];
  2. string respuestas[100];
Como veis se pueden guardar un total de 100 preguntas con 100 respuestas, mi problema es el siguiente.
Código
  1. string preguntas[100];
  2. string respuestas[100];
  3. string frase;
  4.  
  5. void chat()
  6. {
  7.    cout<<" Usuario> ";
  8.    getline(cin, frase);
  9.    cin.ignore();
  10.    cout<<endl<<" Programa> ";
  11.    if(frase == preguntas[0])
  12.    {
  13.        cout<<respuestas[0]<<endl;
  14.    }
  15.    else if(frase == preguntas[1])
  16.    {
  17.        cout<<respuestas[1]<<endl;
  18.    }
  19.    else if(frase == preguntas[2])
  20.    {
  21.        cout<<respuestas[2]<<endl;
  22.    }
  23.    else if(frase == "salir")
  24.    {
  25.        main();
  26.    }
  27.    else
  28.    {
  29.        cout<<"no entiendo '"<<frase<<"'"<<endl;
  30.    }
  31.    cout<<endl;
  32.    chat();
  33. }
  34. //obviamente esto es solo un trozo del programa, pero creo que es suficiente para explicar mi problema

Como veis lo que hago es comparar si la pregunta esta en la "base de datos" y si esta sale la respuesta, y si no sale el mensaje "no entiendo 'hola' "(hola es un ej de pregunta)

Mi problema es que creo que se puede hacer un bucle, para no tener que poner 100 else if, pero llevo un rato pensando en como hacer un bucle para ese caso con for o while pero no me sale... Gracias a todos por su tiempo y ayuda  :-*


Título: Re: Mini Ayuda en bucle C++
Publicado por: engel lex en 2 Mayo 2017, 18:26 pm
Código:
for (indice=0; indice<100;indice++){
   ...
   if(preguntas[indice]....


Título: Re: Mini Ayuda en bucle C++
Publicado por: trioper en 2 Mayo 2017, 18:41 pm

Código:
for (indice=0; indice<100;indice++){
   ...
   if(preguntas[indice]....

con eso ya tengo el bucle pero ahora me imprime 99 veces "no entiendo 'hola' " XDDD
pero gracias