preguntas y respuestas c++

Iniciado por peterfly, 2 Agosto 2011, 00:58 AM

0 Miembros y 2 Visitantes están viendo este tema.

peterfly

tengo un problema con el siguiente codigo...
#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <string.h>

int main (void)
{
    int a,b,c,i;
    char cadena1[40]="calcul";
   
    printf("mis preguntas y respuestas \n \n");
    printf("escriba la pregunta:  ");
    gets(cadena1);
   
    i= strcmp(cadena1,"que edad tengo?");
    if (i==0){
    printf("15\n\n");
}
std::cout << "desea continuar (s o n)?\n";
char answer=0;
std::cin >> answer;
switch (answer){
       case 's':
            return true;
       case 'n':
            return false;
       default:
               std::cout<<"tomo su respuesca como un no.\n";
               return false;
               }
               
     getchar();
     return 0;
}


el problema es que cuando me pregunta si deseo continuar o no y pongo la letra "s" que en un principio es para continuar en el programa sin que se cierre... no pasa eso... se me cierra!!! se que me falta algo pero no se el que es...

me podeis ayudar con esa duda que tengo???

M1L0666

En el switch te falto poner los: "break;"
seria algo asi:

switch (answer){
       case 's':
            return true;
break;
       case 'n':
            return false;
break;
       default:
               std::cout<<"tomo su respuesca como un no.\n";
               return false;
               }





Mas vale un minuto de tonto, que una vida de pendejo.

leogtz

¿Cuándo aprenderán a distinguir entre C y C++?
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

Ferno

Cita de: Leo Gutiérrez. en  2 Agosto 2011, 01:44 AM
¿Cuándo aprenderán a distinguir entre C y C++?

Supongo que eso pasará cuando todos empiecen aprendiendo C y no directamente C++ :P

peterfly

M1L0666 e puesto lo que me digistes... pero sigue cerrandose cuando le pido continuar con el programa...

Dark Invader

No se muy bien que es lo que buscas pero creo que es esto:
Código (cpp) [Seleccionar]

#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <string.h>
char respuesta =0;
int main (void)
{
    int a,b,c,i;
    char cadena1[40]="calcul";
    do{
    printf("mis preguntas y respuestas \n \n");
    printf("escriba la pregunta:  ");
    gets(cadena1);
   
    i= strcmp(cadena1,"que edad tengo?");
    if (i==0){
    printf("15\n\n");
}

std::cout << "desea continuar (s o n)?\n";
std::cin >> respuesta;
switch (respuesta){
       case 's':
   if (respuesta == 's'){
   printf("ha salido con la respuesta s\n");
           
   break;}
       case 'n':
   if (respuesta == 'n'){
   printf("ha salido con la respuesta n");
            return false;
break;}
       default:
               
   printf("ha salido sin la letra n o s");
               return false;
   break;
}
               }while ((respuesta =='s')||(respuesta == 'S'));
               
     getchar();
     return 0;
}


Un saludo

peterfly

#6
muchas gracias por la ayuda...

aora el problema es que cuando la respuesta es que si quiero continuar no para de preguntarme si deseo continuar i no me deja poner mas la pregunta inicial...

se que falta algun detalle que se nos a escapado... pero aun asi... muchisimas gracias por la aclaracion

Dark Invader

¿Has probado el code que te he pasado? :-\ Hace eso que pides...

Un saludo

peterfly

si que lo e provado... i cuando pongo la "s" de si que quiero continuar despues de la pregunta  inicial me lase el principio de todo pero tambien me pregunta si quiero continuar i no me deja volver a poner "que edad tengo?"
es decir que no para de preguntarme si quiero continuar

por eso decia que se nos escapa algun detalle... i es para que no me vuelva a preguntar si quiero continuar despues de poner la "s" (para que solo me lo pregunte una vez)

Dark Invader

Explicanos con lujo de detalles que quieres que haga el programa,porque sigo sin enterarme bien  :-\

Un saludo