Foro de elhacker.net

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
Código
  1. #include<stdio.h>
  2. #include<string.h>
  3.  
  4. int main(){
  5. char periodo[50];
  6. char pintor[50];
  7. char nacion[50];
  8.  
  9. printf("Ingrese periodo: ");
  10. scanf("%s", periodo);
  11.  
  12. if ((strcmp (periodo, "Prehistorico")==0) || (strcmp(periodo, "egipcio")==0)){
  13. printf("Galeria 1 \n");
  14. }else if ((strcmp(periodo, "renacimiento")==0)){
  15. printf("Ingrese nombre del pintor: ");
  16. scanf("%s", pintor);
  17. /*a qui solo capturas el nombre despues de capturarlo sale de todos los else if
  18.  sin pasar por ningun otro*/
  19. }else if ((strcmp (pintor, "Leonardo")==0) || (strcmp(pintor, "Michelangelo")==0)){
  20. printf ("Galeria 2 \n");
  21. }else if (strcmp(pintor, "Rafael")==0){
  22. printf ("Galeria 3");
  23. }else if ((strcmp (pintor, "Tiziano")==0) || (strcmp(pintor, "Boticelli")==0)){
  24. printf("Galeria 4");
  25. }else if ((strcmp (pintor, "Greco")==0) || (strcmp(pintor, "Tintoretto")==0)){
  26. printf("Galeria 5a");
  27. }else if (strcmp(pintor, "Bellini")==0){
  28. printf("Galeria 5b");
  29. }else {
  30. printf("No hay obras de este pintor");
  31. }
  32.  
  33. return 0;
  34. }
  35.  


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