gpt4 book ai didi

c++ - 整体 MPG 的输出略微关闭 (Visual C++)

转载 作者:太空宇宙 更新时间:2023-11-04 03:35:55 28 4
gpt4 key购买 nike

我创建了一个程序,您可以在其中输入行驶的英里数和每 jar 油使用的加仑数,该程序会显示每 jar 油的 mpg。我使用的是 Visual Studio 2010。当我输入标记值 -1 时,系统会给出整体 mpg。这是我的代码:

/* Name
Lab 3 - Page 105, 3.16
September 23th, 2015
Page 2 of 3 */

#include "stdafx.h"
#include <iostream>
#include <stdio.h>

// function main begins program execution
int main( void )
{
// initialization phase
unsigned int counter = 0; // number of tanks used
float gallons = 0; // gallons
float miles = 0; // miles
float milesPerGallon = 0; // MPG
float allTankMPG = 0; // sum of all tanks (MPGs)

float averageMPG = 0; // average MPG of all tankfuls

// processing phase
// get first tankful information
printf( "%s", "Enter the gallons used (-1 to end): " ); // prompt for gallons used
scanf( "%f", &gallons ); // read gallons input from user

// loop while sentinel value not yet read from user
while ( gallons != -1 ) {

printf( "%s", "Enter the miles driven: " ); // prompt for miles driven
scanf( "%f", &miles ); // read miles input from user

milesPerGallon = miles / gallons; // miles per gallon for the tank
printf("%s%.6f\n\n", "The miles/gallon for this tank was: ", milesPerGallon ); // display milesPerGallon
counter = counter + 1; // increment counter
allTankMPG = allTankMPG + milesPerGallon; // add the miles per gallon the sum total of every tank's mpg

// get next tankful information
printf( "%s", "Enter the gallons used (-1 to end): " ); // prompt for gallons used
scanf( "%f", &gallons ); // read input of the next gallon from user
} // end while

// termination phase
// if user entered at least one set of information for one tankful
if ( counter != 0 ) {

// calculate average MPG of all tankfuls
averageMPG = (float) allTankMPG / counter; // avoid truncation

// display average with six digits of precision
printf( "\n%s%.6f\n\n", "The overall average miles per gallon was ", averageMPG );
} // end if

system( "pause" );
return 0;
} // end function main``

我的输出看起来像这样:

  • 输入使用的加仑数(-1 到结束):12.8
  • 输入行驶里程:287
  • 这个油箱的英里/加仑是:22.421875

  • 输入使用的加仑数(-1 到结束):10.3

  • 输入行驶里程:200
  • 这个油箱的英里/加仑是:19.417475

  • 输入使用的加仑数(-1 到结束):5

  • 输入行驶里程:120
  • 这个油箱的英里/加仑是:24.000000

  • 输入使用的加仑数(-1 到结束):-1

总体平均每加仑英里数为 21.946449

按任意键继续。 . .

现在根据这本书,当输入完全相同的输入时,整体平均 MPG 应该是 21.601423,而不是 21.946449。任何人都可以详细说明为什么我的输出略有下降吗?谢谢,非常感谢。

最佳答案

这本书要你计算整个行程中每加仑的平均英里数,而不是无论长度如何的腿的平均加权平均值。为此,保留总英里数和总加仑数之和。

顺便说一句,以 double 进行计算是个好主意,即使您存储在 float 中也是如此。这最大限度地减少了舍入误差。

关于c++ - 整体 MPG 的输出略微关闭 (Visual C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32802017/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com