Fiquei com dúvidas nessa parte da comparação int acertou = chute == numerosecreto;
e no if. Na minha interpretação entendi o seguinte:
As duas primeiras variáveis chute e numerosecreto são criadas e inicializadas, depois a variável acertou recebe a comparação de chute (0) e numeroscreto(42). Isso seria como dizer que acertou = 0 == 42, ou seja, 0 é igual a 42? Então quando comparados retorna true? Fiz um teste para entender melhor:
int chute = 0;
printf("%d \n", chute);
int numerosecreto = 42;
printf("%d \n", numerosecreto);
int acertou = chute == numerosecreto;
printf("%d = %d == %d \n", acertou, chute, numerosecreto);
printf("Agora acertou recebe %d\n", acertou);
output:
0
42
0 = 0 == 42
Agora acertou recebe 0
A partir disso, como o if funciona apenas com uma variável sem a sintaxe de comparação padrão?