Моя домашняя работа на прошлой неделе была
Напишите программу, в которой будет указано количество литров бензина, потребленных и пройденных миль на 2 автомобилях, затем выведено количество миль на галлон топлива, потребленного каждым транспортным средством, и сравните их для эффективности использования топлива.
Который я закончил. На этой неделе проект должен изменить предыдущий проект и
Добавить две пустые функции:
одна вызванная userInstruction, которая говорит пользователю, что делать
Другой displayResult, который отображает исходную информацию (количество литров и пройденных миль) и результат (миль на галлон).
Кажется, мне удалось заставить его работать в основном. Он компилируется и работает по крайней мере. Тем не менее, автомобиль 1, кажется, показывает количество использованного топлива и количество миль, пройденных от автомобиля 2, несмотря на то, что он получает правильные мили на галлон. Я не уверен, что я делаю неправильно. Может быть, я совершенно не в том, что она хочет, поэтому я не могу понять это?
Кроме того, в качестве дополнительного вопроса, есть ли способ заставить "Сделать то же самое с автомобилем 2" в функции userInstruction
void?
const double LPG = 0.264179;
double mpg(double miles, double liters);
void userInstruction();
void displayResult(double mpg1, double mpg2, double liters, double miles);
int main()
{
char keepGoing;
double liters, miles, mpg1, mpg2;
do
{
userInstruction();
cin >> liters;
cin >> miles;
//calling function
mpg1 = mpg(miles, liters);
cout << endl << endl << "Do the same for Car 2. \n" << endl;
cin >> liters;
cin >> miles;
mpg2 = mpg(miles, liters);
displayResult(mpg1, mpg2, liters, miles);
if (mpg1 == mpg2)
{
cout << "Both cars have the same fuel efficiency. \n" << endl;
}
else if (mpg1 > mpg2)
{
cout << "Car 1 has better fuel efficiency. \n" << endl;
}
else
{
cout << "Car 2 has better fuel efficency. \n" << endl;
}
//Allows for repeating
cout << "Do you wish to keep going? (y/n) \n";
cin >> keepGoing;
}
while (keepGoing == 'y' || keepGoing == 'Y');
system("pause");
return 0;
}
double mpg(double miles, double liters)
{
double milesPerGallon;
milesPerGallon = miles / (liters * LPG);
return milesPerGallon;
}
void userInstruction()
{
cout << "Please enter the liters of gasoline consumed as well as the miles travelled. \n" << endl;
}
void displayResult(double mpg1, double mpg2, double liters, double miles)
{
cout << "Car 1 used: " << liters << " liters of fuel \n";
cout << "Car 1 drove: " << miles << " miles \n";
cout << "Car 1 gets: " << mpg1 << " miles per gallon \n" << endl;
cout << "Car 2 used: " << liters << " liters of fuel \n";
cout << "Car 2 drove: " << miles << " miles \n";
cout << "Car 2 gets: " << mpg2 << " miles per gallon \n" << endl;
}
Здесь я ожидал, что результаты входов (5 30) и (55 123) будут распечатаны в соответствующих точках.
Car 1 used: 55 liters of fuel
Car 1 drove: 123 miles
Car 1 gets: 22.7119 miles per gallon
Car 2 used: 55 liters of fuel
Car 2 drove: 123 miles
Car 2 gets: 8.46533 miles per gallon
Car 1 has better fuel efficiency.