Quando compilo o programa, ele está dando erros esquisitos no cálculo. Por exemplo, quando coloco como chute o número 2, e então eu acerto o número que por conveniência coloquei como 32, ele apresenta que eu teria como pontuação final 984. Se faço ele trabalhar com vírgula fica pior ainda. Eis o código abaixo. Desde já agradeço.
#include <iomanip>
#include <ctype.h>
#include <iostream>
#include <stdlib.h>
using namespace std;
int const NUMERO_SECRETO=32;
int chute, acertou, maior, tentativas;
double pontos = 1000.0;
double pontos_perdidos = abs(chute - NUMERO_SECRETO) / 2.0;
int main () {
setlocale (LC_ALL, "Portuguese");
cout << "****************************************";
cout << "\n****Bem-Vindo ao Jogo de Adivinhação****";
cout << "\n****************************************";
bool nao_acertou = true;
while (nao_acertou) {
tentativas++;
cout << "\nTentativa(s) " << tentativas << ": " << endl;
cout << "\n O valor do seu chute é: ";
cin >> chute;
cout << "\n O valor do seu chute é: " << chute << endl;
acertou = chute == NUMERO_SECRETO;
maior = chute > NUMERO_SECRETO;
if(acertou) {
cout << "\n\nParabéns, você acertou o número secreto!";
nao_acertou = false;
}
else if (maior) {
cout << "\n\nSeu número foi maior que o número secreto!";
}
else {
cout << "\n\nSeu número foi menor que o número secreto!";
}
}
cout << "\n\nFim de jogo! ";
cout << "\n Você acertou o número secreto em " << tentativas << "tentiva(s)" << endl;
cout << "\n Sua pontuação foi de " << abs(pontos_perdidos - pontos) << "pontos.";
}