Ir para conteúdo
Fórum Script Brasil
  • 0

Pq Isso Naum Funciona?


Luiz8

Pergunta

huh.gif

gets("escolha");

if(escolha[1]=='s'){

cprintf("Acertou!");

system("PAUSE");

}else{

gets("escolha");

if(escolha[1]=='n'){

cprintf("Voce perdeu!");

system("PAUSE");

}

}

}

porque isso ai não funciona corretamente??? mad.gif Eu criei a variavel toda certa e tal, o compilador também não acusou erro nenhum, o que está acontecendo??? alguém ajudae plz!!!! sad.gif

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Olha, só de dar uma olhada reparei que ao chamar a função gets() você passou uma string como parametro (por causa das aspas""), tudo o que você tem a fazer é tirar as aspas.

Fiz um programa a partir do seu:

#include <stdio.h>
#include <stdlib.h>

int main()
{
   char escolha[11];
   printf("Introduza uma string: ");
   gets(escolha);
   if(escolha[1]=='s')
      printf("A segunda letra e \'s\'.\n");
   else if(escolha[1]=='n')
      printf("A segunda letra e \'n\'.\n");
   else
      printf("A segunda letra não e \'s\' nem \'n\'");
   system("PAUSE");
}

Link para o comentário
Compartilhar em outros sites

  • 0

não consegui não, vey!! huh.gif

Mas eu está aqui o programa todo, para ser melhor então visualizado e entendio. wink.gif

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

char escolha[1];

int main()

{

clrscr();

textbackground(RED);

cprintf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");

gotoxy(1,1);

textcolor(YELLOW);

cprintf("Ola Bem Vindo ao Perguntas e Respostas");

gotoxy(1,3);

cprintf("\n\nCristovao Colombo descobriu a America? s ou n");

gets(escolha);

if(escolha[1]=='s'){

cprintf("Acertou!");

system("PAUSE");

}else{

gets(escolha);

if(escolha[1]=='n'){

cprintf("Voce perdeu!");

system("PAUSE");

}

}

}

Me ajudem plzz!!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Você não disse qual é o problema que ocorre. Pelo que vi, parece que quando o usuário escreve "sim" o programa não mostra a mensagem dizendo que acertou. Se esse for o problema eu sei como corrigi-lo.

Não sei se você não sabe ou se foi só um descuido, mas quando declaramos um array o primeiro elemento é sempre ocupa a posição [0]. Então o comando correto seria:

if (escolha[0] == 's')
   cprintf("Acertou");

Observe: escolha[0]

Link para o comentário
Compartilhar em outros sites

  • 0

Ae vey muito obrigado mesmo, você estah quase acertando mesmo mas, ainda tem um erro, quando eu aperto 's' ele funciona certin mas quando eu aperto 'n' ele não funciona ele pula para outra linha e fica só o tracinho. Compila ae para você ver!!!

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

char escolha[1];

int main()

{

clrscr();

textbackground(RED);

cprintf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");

gotoxy(1,1);

textcolor(YELLOW);

cprintf("Ola Bem Vindo ao Perguntas e Respostas");

gotoxy(1,3);

cprintf("\n\nCristovao Colombo descobriu a America? s ou n");

gets(escolha);

if(escolha[0]=='s'){

cprintf("Acertou!");

system("PAUSE");

}else{

gets(escolha);

if(escolha[1]=='n'){

cprintf("Voce perdeu!");

system("PAUSE");

}

}

}

Na boah, valeu ae, a gente tah quase conseguindo!!!!

Continua ae me ajudando por favor!!!! wink.gif

Link para o comentário
Compartilhar em outros sites

  • 0

É o mesmo problema anterior...

Isso aí!

Mais uma coisa, no seu código quando o usuário não digita 's', o programa aguarda que o usuário digite novamente, mas indepententemente de ele acertar aparece a mensagem "Voce perdeu". Outra observação, quando o usuário introduz algo diferente de 's' e de 'n', o programa encerra sem avisar nada, tire o if (encolha[0] == 'n') do else.

Veja, dei uma arrumada:

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>


int main()
{
   char escolha[1];
   clrscr();
   textbackground(RED);
   cprintf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
   gotoxy(1,1);
   textcolor(YELLOW);
   cprintf("Ola Bem Vindo ao Perguntas e Respostas");
   gotoxy(1,3);
   cprintf("\n\nCristovao Colombo descobriu a America? s ou n\n");
   gets(escolha);
   if(escolha[0]=='s' || escolha[0] == 'S')
      cprintf("Acertou!\n");
   else
      cprintf("Voce perdeu!\n");
   system("PAUSE");
}

Link para o comentário
Compartilhar em outros sites

  • 0

Ou então, se a escolha for diferente de 's', 'S', 'n' ou 'N' faça ele voltar para a pergunta, veja um meio:

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>


int main()
{
   char escolha[1];
   clrscr();
   textbackground(RED);
   gotoxy(1,1);
   textcolor(YELLOW);
   cprintf("Ola Bem Vindo ao Perguntas e Respostas");
   Pergunta:
   gotoxy(1,3);
   cprintf("\n\nCristovao Colombo descobriu a America? s ou n\n%c\r", 178);
   gets(escolha);
   if(escolha[0]=='s' || escolha[0] == 'S')
      cprintf("Acertou!         \n");
   else {
      if (escolha[0] == 'n' || escolha[0] == 'N')
         cprintf("Voce perdeu!     \n");
      else {
         cprintf("Digite \'s\' ou \'n\'");
         goto Pergunta;
      }
   }
   system("PAUSE");
}

Obs.: Para que aquele monte de'\n' para "desestruturar" a página?

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...