Калькулятор очков, набранных баскетболистом, не работает

#c 11

#c 11

Вопрос:

Я создаю программу, в которой вы вводите количество игроков n, попытки троек, сделанные троечки, попытки двухочковых, сделанные двухочковые, попытки штрафных бросков, сделанные штрафные броски, затем я проверяю, что сделанных бросков не больше, чем попыток, и программа должна найти общий счет наиболее точного игрока (наиболее точным является тот, у кого больше всего попыток из всех бросков вместе взятых).

 #include <iostream>
#include <vector>

using namespace std;

class Player {
private:
    long int thra, thrm, twa, twm, fta, ftm;
public:
    void Input() {
        long int thra1, thrm1, twa1, twm1, fta1, ftm1;
        cin >> thra1 >> thrm1 >> twa1 >> twm1 >> fta1 >> ftm1;
        if (thrm1 <= thra1 amp;amp; twm1 <= twa1 amp;amp; ftm1 <= fta1) {
            thra = thra1;
            thrm = thrm1;
            twa = twa1;
            twm = twm1;
            fta = fta1;
            ftm = ftm1;
        }
        else {
            returnFalse();
        }
    }

    bool returnFalse() {
        return false;
    }

    long int mostPoints() {
        double acc = 0, maxacc = 0;
        long int maxpts = 0;

        if ((thra   twa   fta) > 0) {
            acc = 100 * ((thrm   twm   ftm) / (thra   twa   fta));
        }
        else {
            acc = 0;
        }
        if (acc > maxacc) {
            maxacc = acc;
            maxpts = (thrm) * 3   (twm) * 2   ftm;
        }
        return maxpts;
    }
};

int main() {
    int n;
    cin >> n;

    vector<Player*> players;
    for (int i = 0; i < n; i  ) {
        Player *newPlayer = new Player();
        newPlayer->Input();
        players.push_back(newPlayer);
    }
    long int points = 0;

    for (int i = 0; i < n; i  ) {
        points = players[i]->mostPoints();
    }

    cout << points;
}
  

При любом вводе ответ равен 0, и я не могу определить свою ошибку. Может кто-нибудь, пожалуйста, помочь?

Комментарии:

1. Я вижу целочисленное деление. Предполагаю, что проблема есть.

2. Также в Input() , returnFalse() бессмысленно.

3. я убедился, что не делю на ноль с помощью if, который проверяет, все ли попытки броска больше 0

4. Допустим, вы нанесли 3 броска из 5. 3 / 5 = 0 с целыми числами. Вам нужно перейти на float или double .

5. изменение с int на double помогло, по крайней мере, сейчас я получаю некоторый результат, я собираюсь проверить другие ошибки, потому что он по-прежнему выдает неверный результат