Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: GonzaJava en 13 Abril 2018, 04:14 AM

Título: No me ejecuta el printf
Publicado por: GonzaJava en 13 Abril 2018, 04:14 AM
Hola, no me ejecuta el printf, compile y esta bien pero no me lo ejecuta. aqui esta

#include<stdio.h>
#include<string.h>


int main()
{
      char periodo[50];
      char pintor[50];
      char nacion[50];
      
         printf("Ingrese periodo: ");
         scanf("%s", periodo);
      
      
      if ((strcmp (periodo, "Prehistorico")==0) || (strcmp(periodo, "egipcio")==0)){


               printf("Galeria 1 \n");

      }      
      
          else if ((strcmp(periodo, "renacimiento")==0)){
         

 

               printf("Ingrese nombre del pintor: ");
               scanf("%s", pintor);
         }
         else if ((strcmp (pintor, "Leonardo")==0) || (strcmp(pintor, "Michelangelo")==0)){
         
               printf ("Galeria 2 \n");
            }   
         else if (strcmp(pintor, "Rafael")==0){
      

               printf ("Galeria 3");
         }   
         else if ((strcmp (pintor, "Tiziano")==0) || (strcmp(pintor, "Boticelli")==0)){
         

               printf("Galeria 4");
         }   
         else if ((strcmp (pintor, "Greco")==0) || (strcmp(pintor, "Tintoretto")==0)){
         

               printf("Galeria 5a");
         }
         else if (strcmp(pintor, "Bellini")==0){
         

               printf("Galeria 5b");
         }   
         else {
         
               printf("No hay obras de este pintor");
         }
      
   return 0;

}
Título: Re: No me ejecuta el printf
Publicado por: MAFUS en 13 Abril 2018, 06:54 AM
Haz un pantallazo de cuando te falla.
Título: Re: No me ejecuta el printf
Publicado por: GonzaJava en 13 Abril 2018, 17:04 PM
Osea el programa me dice:

Inserte periodo: (si pongo "egipcio" me aparece "galeria 1" eso esta bien, pero si pongo "renacimiento" me aparece "Ingrese pintor: " eso esta bien) el problema es despues, cuando me pide que ingrese el pintor, lo ingreso y tendria que aparecerme la galeria en la que esta pero no me aparece nada..
Título: Re: No me ejecuta el printf
Publicado por: Kenji-chan en 13 Abril 2018, 17:34 PM
eso es porque solo capturas el nombre del pintor pero no le dices que hacer con el despues

#include<stdio.h>
#include<string.h>

int main(){
char periodo[50];
char pintor[50];
char nacion[50];

printf("Ingrese periodo: ");
scanf("%s", periodo);

if ((strcmp (periodo, "Prehistorico")==0) || (strcmp(periodo, "egipcio")==0)){
printf("Galeria 1 \n");
}else if ((strcmp(periodo, "renacimiento")==0)){
printf("Ingrese nombre del pintor: ");
scanf("%s", pintor);
/*a qui solo capturas el nombre despues de capturarlo sale de todos los else if
  sin pasar por ningun otro*/
}else if ((strcmp (pintor, "Leonardo")==0) || (strcmp(pintor, "Michelangelo")==0)){
printf ("Galeria 2 \n");
}else if (strcmp(pintor, "Rafael")==0){
printf ("Galeria 3");
}else if ((strcmp (pintor, "Tiziano")==0) || (strcmp(pintor, "Boticelli")==0)){
printf("Galeria 4");
}else if ((strcmp (pintor, "Greco")==0) || (strcmp(pintor, "Tintoretto")==0)){
printf("Galeria 5a");
}else if (strcmp(pintor, "Bellini")==0){
printf("Galeria 5b");
}else {
printf("No hay obras de este pintor");
}

return 0;
}
Título: Re: No me ejecuta el printf
Publicado por: MAFUS en 13 Abril 2018, 18:23 PM
 Correcto. El else que hay justo después hace que continúe la cadena de ifs en vez de iniciar una nueva toma de decisiones.
Título: Re: No me ejecuta el printf
Publicado por: GonzaJava en 13 Abril 2018, 18:39 PM
Muchas gracias ahi funciona