Olá Victor, tudo bem com você?
Isso aconteceu porque você acabou utilizando a função abs()
que por padrão recebe um número inteiro e devolve um número inteiro, vou te dar um exemplo com um print no seu programa:
[Número secreto = 99]
Digite seu número
>>>42
Um pouco mais!
O valor de pontos perdidos: -28.500000 e o valor de abs(pontosperdidos) : 28
Então como você pode ver, além de pegar o valor absoluto temos um problema de conversão pois perdemos as casas decimais quando fazemos essa operação, para fugir disso precisamos utilizar o abs
na linha de cima de nosso programa:
float pontosperdidos = abs(chute - numerosecreto) / 2.0;
Veja que tanto chute quanto número secreto são valores inteiros em nosso programa
Dessa maneira conseguimos pegar o valor absoluto entre o chute
e o numerosecreto
, e após isso ainda temos a conversão para o formato do tipo double
para que na hora de computar a pontuação:
pontos = pontos - pontosperdidos
Tenhamos as casas decimais preservadas :)
Conseguiu compreender?
Abraços e Bons Estudos!