[RESUELTO] Mini Ayuda en bucle C++

Iniciado por trioper, 2 Mayo 2017, 18:11 PM

0 Miembros y 1 Visitante están viendo este tema.

trioper

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 (cpp) [Seleccionar]
string preguntas[100];
string respuestas[100];

Como veis se pueden guardar un total de 100 preguntas con 100 respuestas, mi problema es el siguiente.
Código (cpp) [Seleccionar]

string preguntas[100];
string respuestas[100];
string frase;

void chat()
{
   cout<<" Usuario> ";
   getline(cin, frase);
   cin.ignore();
   cout<<endl<<" Programa> ";
   if(frase == preguntas[0])
   {
       cout<<respuestas[0]<<endl;
   }
   else if(frase == preguntas[1])
   {
       cout<<respuestas[1]<<endl;
   }
   else if(frase == preguntas[2])
   {
       cout<<respuestas[2]<<endl;
   }
   else if(frase == "salir")
   {
       main();
   }
   else
   {
       cout<<"no entiendo '"<<frase<<"'"<<endl;
   }
   cout<<endl;
   chat();
}
//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  :-*

engel lex

for (indice=0; indice<100;indice++){
   ...
   if(preguntas[indice]....
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

trioper


Cita de: engel lex en  2 Mayo 2017, 18:26 PM
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