[ Foro de C ]
Intento hacer un simple programa de pregunta - respuesta con printf y scanf. El problema es que da igual lo que responde, siempre tomará la primera opcion en cadena, los "if" os dejo el programa a continuación:
#include <stdio.h>
void main () {
char saludo;
char estado;
char hacer;
char trabajo;
char relajar;
printf ("Hello!: ");
scanf ("%c", &saludo);
if (saludo == 'H' || 'h'){
printf ("\nHow are you?: ");
fflush (stdin);
scanf ("%c", &estado);
if (estado == 'F' || 'f'){
printf ("\nCool! Let's get started.");
}
else if (estado == 'B' || 'b'){
printf ("\nWe are going to solve it. Let's get started.");
}
printf ("\n\nWhat do you want to do first?: ");
fflush (stdin);
scanf ("%c", &hacer);
if (hacer == 'W' || 'w'){
printf ("\nAlright, do you want to open Virtual Studio or CodeBlocks?: ");
fflush (stdin);
scanf ("%c", &trabajo);
if (trabajo == 'V' || 'v'){
printf ("\nLet's open Visual Studio.");
}
else if (trabajo == 'C' || 'c'){
printf ("\nLet's open CodeBlocks.");
}
}
else if (hacer == 'C' || 'c'){
printf ("\nCool, let's chill out. What do you want to open, YouTube or Netflix?: ");
fflush (stdin);
scanf ("%c", &relajar);
if (relajar == 'Y' || 'y'){
printf ("\nLet's see what's new.");
}
else if (relajar == 'N' || 'n'){
printf ("\nHope you enjoy.");
}
}
}
else if (saludo == 'G' || 'g'){
printf ("\nGoodbye.");
}
getch ();
}
Muchas gracias por el esfuerzo.
Solucionado, al tratarse de una varaible lógica tenía que poner el char también al otro lado del ||
ej: if (salutation == 'H' || salutation == 'h');
Estas condiciones están mal:
if (trabajo == 'C' || 'c'){
Debería ser
if (trabajo == 'C' || trabajo == 'c'){
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)