未初始化的局部变量错误甚至认为我初始化了它(C++)



我对编程很陌生,不确定我做错了什么,但我在line 20上收到错误,它说我还没有初始化intownMileshighwayMiles

#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的值不受影响。
因此,您必须首先向用户询问这些变量的值,然后计算公式。

最新更新