我对编程很陌生,不确定我做错了什么,但我在line 20
上收到错误,它说我还没有初始化intownMiles
和highwayMiles
。
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
double intownMPG = 23.5;
double highwayMPG = 28.9;
double intownMiles;
double highwayMiles;
double gallons = intownMiles / intownMPG + highwayMiles / highwayMPG;
cout << "Please enter the number of in-town driving miles: " << endl;
cin >> intownMiles;
cout << "Please enter the number of highway driving miles: " << endl;
cin >> highwayMiles;
cout << "The total number of gallons required is: " << gallons << "gal" << endl;
}
你的代码:
double intownMiles;
double highwayMiles;
double gallons = intownMiles / intownMPG + highwayMiles / highwayMPG;
在使用这些变量之前,您显然尚未初始化它们。你所做的只是定义它们 - 所以它们存在,但在你分配给它们之前具有不确定的值(你永远不会这样做(。
在定义变量时将变量初始化为合理的初始值,编译器警告将消失(并且您的代码将不再具有未定义的行为(。
编写C++与编写常规数学方程式不同。
首先,代码按顺序执行。
当执行到达此行时:
double gallons = intownMiles / intownMPG + highwayMiles / highwayMPG;
使用表达式中使用的变量的当前值立即计算gallons
的值。
在使用某些变量之前,您尚未为它们分配任何值,因此您不能期望获得有意义的结果。
稍后更改这些变量时,gallons
的值不受影响。
因此,您必须首先向用户询问这些变量的值,然后计算公式。