Olá Luciano, tudo bem com você?
Não sei se compreendi bem a sua questão, você quis dizer se o seu código estivesse assim:
int numerosecreto = 42;
int chute;
int acertou = (chute == numerosecreto);
scanf("%d", &chute);
Por que o acertou
não reconhece o chute
igual ao número secreto?
Acontece que o nosso programa irá ir linha por linha do nosso programa, então quando ele chega em acertou, ainda não há nada na variável chute (apenas qualquer valor aleatório), então o resultado é 0, por não ser igual, por isso quando separamos:
int numerosecreto = 42;
int chute;
scanf("%d", &chute);
int acertou = (chute == numerosecreto);
O nosso programa funciona corretamente, pois só iremos calcular o valor de acertou
quando tivermos tudo bem definido pelo nosso programa!
Na primeira versão, mesmo atualizando o valor de chute
, o nosso programa não irá refazer a conta para ver se o acertou é de fato igual, sem que nós explicitamente peçamos isso!
Foi isso que você não havia compreendido? Caso não, estou a disposição :)
Abraços e Bons Estudos!