Olá Marcelo! Tudo bem?
Desculpe pela demora em obter retorno.
A execução dessa forma está relacionada ao buffer de entrada do terminal. Ao digitar um caractere e pressionar "Enter", o buffer entende que você digitou dois caracteres: o caractere que você digitou e o caractere de nova linha ('\n') gerado pela tecla "Enter".
Quando você usa scanf("%c", &chute);, ele lê o primeiro caractere presente no buffer, que é o que você digitou. No entanto, o caractere de nova linha ('\n') permanece no buffer. Então, na próxima iteração do loop, o scanf("%c", &chute); é executado novamente, e desta vez ele lê o caractere de nova linha ('\n') no lugar de ler o caractere que você realmente digitou. Isso faz com que a impressão do resultado pareça estar atrasada, pois o caractere de nova linha é lido na próxima iteração.
Quando você altera o scanf("%c", &chute); para scanf("\n%c", &chute);, você está pedindo explicitamente ao scanf para ler e descartar quaisquer caracteres de nova linha pendentes no buffer antes de ler o próximo caractere que você digitou. Dessa forma, o caractere correto é lido e o comportamento indesejado é corrigido.
Uma outra forma que podemos utilizar para contornar esse problema é modificar o scanf("%c", &chute); para scanf(" %c", &chute); (observe o espaço antes de "%c"). O espaço antes do "%c" indica que o scanf deve ignorar quaisquer espaços em branco ou caracteres de nova linha pendentes no buffer antes de ler o próximo caractere digitado.
Espero ter ajudado! Abraços e bons estudos!