2
respostas

Resultado diferente da resposta da atividade

Acredito que eu não tenha entendido muito bem a comparação int acertou = chute == numerosecreto;

O == é utilizado para definir igualdade, sim? Na linguagem C, não devemos ler a definição de variaveis assim da direta para a esquerda? numerosecreto é igual a chute que é igual a acertou?

Tinha lido isto no livro "Linguagem C" de Luís Damas.

E quando executei o cod no meu computador, apenas deu-me a mensagem "Seu chute é menor que o número secreto".

Estou utlizando do dec C++.

int chute = 0; int numerosecreto = 42; int acertou = chute == numerosecreto; if(acertou) { printf("Parabéns! Você acertou!\n"); } else { if(chute > numerosecreto) { printf("Seu chute foi maior do que o número secreto!\n"); } if(chute < numerosecreto) { printf("Seu chute foi menor do que o número secreto!\n"); } }

2 respostas

Olá, Milena!

Em relação à leitura do código, EU leria da seguinte maneira: int acertou RECEBE O RESULTADO DA COMPARAÇÃO chute == numerosecreto, mas isso vai do gosto de cada um.

Creio que o resultado do código é o esperado, pois se chute != numerosecreto, a comparação é somente se o valor de chute é maior ou menor que numerosecreto, e como é menor, a mensagem correta é mostrada.

Espero ter ajudado!

Boa sorte em seus estudos!

C, ao contrário de python não é dinamicamente tipado, mas ao comparar dois valores, ele armazena na variável do tipo inteiro, os valores 0 (para falso) ou 1 (para verdadeiro) que são inteiros.