Ошибка калькулятора Delta V с логарифмами

Я пытаюсь создать программу для определения Delta-V для своей игры Kerbal Space Program, и C ++ (запускаемый в Eclipse IDE), похоже, считает, что моя попытка вызвать функцию «log ()» на самом деле является моей ссылкой несозданная функция. Я высоко ценю любую помощь в этом вопросе!

#include <iostream>
#include <cmath>
using namespace std;

int main() {
cout << "Hello. Welcome to the Kerbal Space Program Delta V Calculator. \n";
cout << " \n";
cout << "Note that each stage must use the same engine for this calculator.";
cout << "\n";
cout << "\nHow many stages make up your rocket? :";
int stageNumber;
cin >> stageNumber;
//cout << "Your rocket has " << stageNumber << " stages.\n";
cout << "\n\nStart from the bottom stage, please. ";
//ACTUAL DELTA V CALCULATIONS
for(int currentStage = 1; currentStage <= stageNumber; currentStage = currentStage + 1){
cout << "What is the total mass of this stage? :";
int totalMass;
cin >> totalMass;
cout << "What is the fuel mass of this stage? :";
int fuelMass;
cin >> fuelMass;
cout << "\n";
int dryMass;
dryMass = totalMass - fuelMass;
cout << "Your dry mass is" << dryMass << "\n";
cout << "\n";
cout << "Give the specific impulse of this stage's engine. \n";
int iSP;
cin >> iSP;
cout << "Here is the Delta V of your rocket.\n";
int deltaMass;
deltaMass = totalMass/dryMass;
int deltaV;
deltaV = iSP * log(deltaMass);
cout << deltaV;

exit(0);
}

}

0

Решение

Я думаю, что для ваших расчетов вы хотите использовать double (что я бы предпочел здесь) или float переменные. Теперь все десятичные разряды усекаются при делении целого числа. Также ваш цикл не будет делать более одной итерации, так как exit(0); называется который завершает всю программу. Удалите его и выйдите из основной функции с помощью return 0;, Ваше сообщение об ошибке происходит, потому что нет log(int) в cmath, Это также будет решено с помощью double, Если вы получаете ошибки компоновщика, добавьте опцию компоновщика -lm,

0

Другие решения

При использовании математических функций вам может понадобиться ссылка в математической библиотеке.

Обычно это делается путем добавления -lm вариант для команды компиляции.

1

По вопросам рекламы [email protected]