我对编程很陌生,不知道自己做错了什么,但是我在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;
}
答案 0 :(得分:2)
您的代码:
double intownMiles;
double highwayMiles;
double gallons = intownMiles / intownMPG + highwayMiles / highwayMPG;
您显然已经未在使用它们之前对其进行了初始化。您所做的只是对它们进行定义-这样它们就存在了,但是具有不确定值,直到您分配给它们为止(从未做过)。
在定义变量时将变量初始化为合理的初始值,并且编译器警告将消失(并且您的代码将不再具有未定义的行为)。
答案 1 :(得分:1)
编写C ++与编写常规数学方程式不同。
首先,代码按顺序执行。
执行到此行:
double gallons = intownMiles / intownMPG + highwayMiles / highwayMPG;
使用表达式中使用的变量的当前值 立即计算gallons
的值。
在使用某些变量之前,您尚未为其分配任何值,因此您无法期望得到有意义的结果。
以后更改这些变量时,gallons
的值不受影响。
因此,您必须先向用户询问这些变量的值,然后再然后计算公式。