Estou tentando fazer um código de um menu que funciona assim: Existes escolhas (por exemplo, 1.Essa é a opção 1, 2.Essa é a opção dois, f.Sair etc), o utilizador seleciona uma delas e logo depois o programa pede para dizer qual foi a escolha q ele fez anteriormente (Obs: na primeira vez que corre o programa, a escolha anterior é tida como 0). Quando o utilizador coloca a opção correta, o programa retorna "Muito bem", e quando coloca a errada, ele fala q você errou. Isso tudo num loop infinito.
Ai tudo bem, eu executo o código, coloco as duas opções corretas, porém quando ele volta a pedir para escolher uma opção (isso no segundo ciclo) ele simplesmente n permite q eu digite e da como opção inválida. (Obs2: eu coloquei um if else de forma que se o utilizador não colocar nada no espaço pra escolher a opção, ele retorna "opção inválida").
Por favor, preciso muito de ajuda nesse código. Desde já agradeço sua atenção.
#include <stdio.h>
#include <stdlib.h>
int main() {
/* declaração de variáveis */
int controle;
char option, opt_ant;
char result1, result_2;
controle=0;
/* escrever menu */
do {
printf (" MENU para broncos\n");
printf ("1 – A opção que escolheu foi 1\n");
printf ("2 – Escolheu a segunda opção\n");
printf ("3 – Agora escreveu um três\n");
printf ("4 – A tecla que carregou foi um quatro\n");
printf ("s – Escreveu um ‘s’\n");
printf ("t – Esta foi a opção do ‘t’\n");
printf ("f – Sair\n");
printf("\n");
printf("Escolha uma opção: ");
result1 = scanf(" %c", &option);
printf("\n");
if (option=='1')
{
printf ("1 – A opção que escolheu foi 1\n");
printf("\n");
}
else if (option=='2')
{
printf ("2 – Escolheu a segunda opção\n");
printf("\n");
}
else if (option=='3')
{
printf ("3 – Agora escreveu um três\n");
printf("\n");
}
else if (option=='4')
{
printf ("4 – A tecla que carregou foi um quatro\n");
printf("\n");
}
else if (option=='s')
{
printf ("s – Escreveu um ‘s’\n");
printf("\n");
}
else if (option=='t')
{
printf ("t – Esta foi a opção do ‘t’\n");
printf("\n");
}
else if (option=='f')
{
exit(1);
}
else
{
printf ("Opção invalida\n");
printf("\n");
exit(1);
}
printf("Qual foi a opção que escolheu antes desta? ");
//opt_ant = getchar();
result_2 = scanf("%c\n", &opt_ant);
if (controle=0)
{
if (result_2=='0')
{
printf ("Muito bem\n");
printf("\n");
}
else
{
printf ("Falhou! A opção era a 0");
printf("\n");
}
controle = 1;
}
if (controle = 1)
{
if (result1==result_2)
{
printf ("Muito bem\n");
printf("\n");
}
else
{
printf ("Falhou! A opção era a 0");
printf("\n");
}
}
Pergunta
JeffersonProgramador
Estou tentando fazer um código de um menu que funciona assim: Existes escolhas (por exemplo, 1.Essa é a opção 1, 2.Essa é a opção dois, f.Sair etc), o utilizador seleciona uma delas e logo depois o programa pede para dizer qual foi a escolha q ele fez anteriormente (Obs: na primeira vez que corre o programa, a escolha anterior é tida como 0). Quando o utilizador coloca a opção correta, o programa retorna "Muito bem", e quando coloca a errada, ele fala q você errou. Isso tudo num loop infinito.
Ai tudo bem, eu executo o código, coloco as duas opções corretas, porém quando ele volta a pedir para escolher uma opção (isso no segundo ciclo) ele simplesmente n permite q eu digite e da como opção inválida. (Obs2: eu coloquei um if else de forma que se o utilizador não colocar nada no espaço pra escolher a opção, ele retorna "opção inválida").
Por favor, preciso muito de ajuda nesse código. Desde já agradeço sua atenção.
#include <stdio.h>
#include <stdlib.h>
int main() {
/* declaração de variáveis */
int controle;
char option, opt_ant;
char result1, result_2;
controle=0;
/* escrever menu */
do {
printf (" MENU para broncos\n");
printf ("1 – A opção que escolheu foi 1\n");
printf ("2 – Escolheu a segunda opção\n");
printf ("3 – Agora escreveu um três\n");
printf ("4 – A tecla que carregou foi um quatro\n");
printf ("s – Escreveu um ‘s’\n");
printf ("t – Esta foi a opção do ‘t’\n");
printf ("f – Sair\n");
printf("\n");
printf("Escolha uma opção: ");
result1 = scanf(" %c", &option);
printf("\n");
if (option=='1')
{
printf ("1 – A opção que escolheu foi 1\n");
printf("\n");
}
else if (option=='2')
{
printf ("2 – Escolheu a segunda opção\n");
printf("\n");
}
else if (option=='3')
{
printf ("3 – Agora escreveu um três\n");
printf("\n");
}
else if (option=='4')
{
printf ("4 – A tecla que carregou foi um quatro\n");
printf("\n");
}
else if (option=='s')
{
printf ("s – Escreveu um ‘s’\n");
printf("\n");
}
else if (option=='t')
{
printf ("t – Esta foi a opção do ‘t’\n");
printf("\n");
}
else if (option=='f')
{
exit(1);
}
else
{
printf ("Opção invalida\n");
printf("\n");
exit(1);
}
printf("Qual foi a opção que escolheu antes desta? ");
//opt_ant = getchar();
result_2 = scanf("%c\n", &opt_ant);
if (controle=0)
{
if (result_2=='0')
{
printf ("Muito bem\n");
printf("\n");
}
else
{
printf ("Falhou! A opção era a 0");
printf("\n");
}
controle = 1;
}
if (controle = 1)
{
if (result1==result_2)
{
printf ("Muito bem\n");
printf("\n");
}
else
{
printf ("Falhou! A opção era a 0");
printf("\n");
}
}
} while(1);
return 0;
}
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.