Como relatado em um tópico anterior, a função abs() pode fazer com que ocorra um erro no programa ao calcular e registrar os pontos do jogador. Após fazer testes, percebi que a função abs(), quando utilizada, perde as informações de casas decimais das variáveis. Sendo assim, no código do jogo de adivinhação em questão, se a função abs() for utilizada após a divisão por "2", qualquer valor decimal registrado vai ser perdido.
...
pontosperdidos=(chute-numerosecreto)/2.0;
pontos=pontos-abs(pontosperdidos);
//Neste caso os valores decimais serão perdidos
...
Para que o programa imprima possíveis valores decimais na pontuação é necessário usar a função abs() antes de ser feita a divisão por "2" (ou seja, antes que a conta possa resultar em um número com valores menor que um).
...
pontosperdidos=abs(chute-numerosecreto)/2.0;
pontos=pontos-pontosperdidos;
//Neste caso os valores decimais dos pontos serão registrados
...
Gostaria de saber se existe uma função equivalente à função abs() mas que não perca informações sobre valores menores que um nas variáveis, podendo ser usada em qualquer das "posições" citadas. Obrigado.