正如标题说的那样,我的秒变量没有正确地存储,我也不知道为什么。我尝试在第8行的用户输入后插入cout语句,但由于某种原因它没有存储,比如输出将是-1.75474e+4。
#include <iostream>
#include <iomanip>
#include <fstream>
#include <cmath>
using namespace std;
double readSeconds()
{
double seconds;
cout << "Enter the time (in seconds)" << endl;
cin >> seconds;
//value less than zero
while (seconds < 0) {
cout << "The time must be zero or more" << endl;
cout << "Enter the time (in seconds)" << endl;
cin >> seconds;
}
return seconds;
}
double calculateEarthDistance(double seconds)
{
const double gravityEarth = 9.8;
double earthDistance = 0.5 * gravityEarth * pow(seconds, 2);
return earthDistance;
}
double calculateMoonDistance(double seconds)
{
const double gravityMoon = 1.6;
double moonDistance = 0.5 * gravityMoon * pow(seconds, 2);
return moonDistance;
}
//The displayResults function MUST NOT call readSeconds, calculateEarthDistance, or calculateMoonDistance.
void displayResults(double seconds, double earthDistance, double moonDistance)
{
cout << "The object traveled " << fixed << setprecision(4) << earthDistance << fixed << setprecision(2) << " meters in " << seconds << " on Earth." << endl;
cout << "The object traveled " << fixed << setprecision(4) << moonDistance << fixed << setprecision(2) << " meters in " << seconds << " on Moon." << endl;
}
int main()
{
if (1) { //when true
double seconds;
seconds == readSeconds();
cout << seconds;
if (seconds == 0) {
exit(0);
}
double earthDistance = calculateEarthDistance(seconds);
double moonDistance = calculateMoonDistance(seconds);
displayResults(seconds, earthDistance, moonDistance);
}
} //end program发布于 2020-11-07 22:41:31
您使用的是等效运算符(==),而不是赋值运算符(=)
seconds == readSeconds(); // bad
seconds = readSeconds(); // goodhttps://stackoverflow.com/questions/64733105
复制相似问题