Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Operador 'MAIOR > 'não está funcionando corretamente('erro de logica talvez')

int main(void){
    system("chcp 65001");
    int a,b,tentativa;

    printf ("Entre com o número A\n");
    scanf ("%d", &a);
    printf("Você escolheu o número %d\n", a);
    printf("\n");

    //testando while
    printf ("Entre com o número B\n");
    scanf ("%d", &b);
    printf("Você escolheu o número: %d\n",b);        
    while (b < a){
        printf ("Entre com o número B\n");
        scanf ("%d", &b);

        if(b < a){
            printf("O Número B deve ser maior que A!\n");
            printf("\n");
            printf ("Entre com o número B\n");
            scanf ("%d", &b);
        } else {
            printf("Você escolheu o número: %d\n",b);    

        }
    }    
}

Quando eu insiro o número B e ele é IGUAL ao número o A o programa termina, sendo que ele só deveria se encerrar se B fosse maior que A, porque ele está encerrando sendo que o número é igual?

2 respostas
solução!

Olá Thiago,

Realmente é um problema de lógica. Se os valores forem iguais ou B for maior que A, o código não entrará no while e o programa vai terminar.

Experimente mudar para:

while (b <= a) {
        printf ("Entre com o número B\n");
        scanf ("%d", &b);
    // continua tudo igual daqui para baixo...

Muito obrigado Leonardo, funcionou perfeitamente aqui, agradeço a ajuda!