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

Duvida


Vinicius230

Pergunta

Boa noite pessoal!

Acabei de iniciar na linguagem C e estou com uma "pequena" duvida...

AQUI ABAIXO ESTA O CODIGO....

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

int main()
{
    int dinheiro,n1,n2,conti;
    int n11,n22,aposta,div;


    printf("Inicie com um valor\n");
    scanf("%d",&dinheiro);
    system("clear");
menu:
    do
    {
        printf("-----------------------------\n");
        printf(" J O G O   D A   A P O S T A \n");
        printf("-----------------------------\n");
        printf("Voce possui %d Reais\n",dinheiro);
        printf("Escolha dois numeros de 1 a 20\n");
        scanf("%d",&n1);
        scanf("%d",&n2);
        if((n1 < 1)||(n1 > 20)||(n2 < 1)||(n2 > 20));
        {
            printf("Numeros Invalidos!\n");
            printf("Tecle 0 para continuar\n");
            scanf("%d",&conti);
            system("clear");
        }
    }
    while ((n1 < 1 || n1 > 20)||(n2 < 1 || n2 > 20));
    system("clear");
    do
    {
        printf("Quanto desaja apostar no [%d] e [%d]\n",n1,n2);
        scanf("%d",&aposta);
        if(aposta > dinheiro || aposta < 0)
        {
            printf("Quantia Invalida!\n");
            printf("Tecle 0 para continuar\n");
            scanf("%d",&conti);
            system("clear");
        }
    }
    while(aposta > dinheiro || aposta < 0);
    system("clear");
    n11 = 1+(rand()%20);
    n22 = 1+(rand()%20);
    printf("Numeros sorteados foram [%d] e [%d]\n",n11,n22);
    if(n1 == n11 && n1 == n22 && n2 == n11 && n2 == n22)
    {
        printf("Voce acertou os dois numeros e ganhou %d\n",aposta);
        dinheiro = dinheiro + aposta;
        printf("Tecle 0 para continuar\n");
        scanf("%d",&conti);
        system("clear");
        goto menu;
    }
    if(n1 == n11 || n1 == n22 || n2 == n11 || n2 == n22)
    {
        div = aposta / 2;
        printf("Voce acertou um numero e ganhou %d\n",div);
        dinheiro = dinheiro + div;
        printf("Tecle 0 para continuar\n");
        scanf("%d",&conti);
        system("clear");
        goto menu;
    }
    else
        printf("Voce errou os dois numeros e perdeu %d\n",aposta);
    dinheiro = dinheiro - aposta;
    printf("Tecle 0 para continuar\n");
    scanf("%d",&conti);
    system("clear");
    goto menu;


    return 0;
}

Perceba que no primeiro (IF) caso esteja verdadeiro, para que isso aconteça, deverá inserir um numero menor que 1 e maior que 20... ele irá mostrar, Numero Invalido e etc....

MAS.... mesmo eu inserindo números entre 1 a 20 ele entra nessa condição... Porque? Essa é a minha primeira e a principal duvida...

Tenho outra duvida, porem um pouco importante, perceba que tem a função (GOTO) ele redireciona láááá no comecinho... Mas gostaria de retirar essa utilização do GOTO. O que tanto posso fazer para não usar o GOTO?

Obrigado desde já!

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
11 horas atrás, Vinicius230 disse:

Perceba que no primeiro (IF) caso esteja verdadeiro, para que isso aconteça, deverá inserir um numero menor que 1 e maior que 20... ele irá mostrar, Numero Invalido e etc....

MAS.... mesmo eu inserindo números entre 1 a 20 ele entra nessa condição... Porque? Essa é a minha primeira e a principal duvida...

você tem 2 números se ambos n4ao podem sair do range de entre 1 a 20 seria:

if( ((n1<1)||(n1>20)) && ((n2<1)||(n2>20)) )

 

E NÃO PONHA PONTO E VIRGULA DEPOIS DE WHILE OU IF. Isso é errado:

if( ((n1<1)||(n1>20)) && ((n2<1)||(n2>20)) ); <---ERRADO!!!!

você está separando while do corpo do while. Troque while();{} por while(){} e if();{} por if(){}.
 

11 horas atrás, Vinicius230 disse:

Tenho outra duvida, porem um pouco importante, perceba que tem a função (GOTO) ele redireciona láááá no comecinho... Mas gostaria de retirar essa utilização do GOTO. O que tanto posso fazer para não usar o GOTO?

retire o goto e ponha esse pedaço de código dentro de um laço repetitivo como while. Deve-se praticar isso.

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...