每次我运行下面的代码时,我得到相同的结果,这是一个错误,表明"直径"是一个未初始化的局部变量。我需要的是在getDiam()函数中输入的输入被初始化为直径。 我已经尝试过另外两种方式,包括:
double getDiam()
{
double diameter;
double input;
cout << "Please enter the diameter of your floor: ";
cin >> input;
diameter = input;
return diameter;
}
这^^不起作用。
//prototypes
double getDiam();
double calcSqFeet(double);
const double PI = 3.14;
int main()
{
double diameter,
squareFeet;
getDiam();
calcSqFeet(diameter);
}
double getDiam()
{
double diameter = 0;
cout << "Please enter the diameter of your floor: ";
cin >> diameter;
return diameter;
}
double calcSqFeet(double diameter)
{
double radius = diameter / 2;
double squareFeet = PI * radius * radius;
return squareFeet;
}
答案 0 :(得分:2)
传递给diameter
的{{1}}与输入的calcSqFeet
不同。
您diameter
的返回值未在getDiam
中使用。
您应该将main
中的getDiam
来电更改为main
。
答案 1 :(得分:-1)
如果您阅读了警告消息(我怀疑这是一个错误,除非您启用了“警告为错误”选项),您将看到它与diameter
函数中getDiam
的使用无关。它位于main
函数中,在diameter
的调用中确实使用了同名的变量calcSqfeet
而没有初始化。
您遗失的是将getDiam
的结果分配给diameter
函数中的main
变量。
需要学习的课程:实际上读取编译器提供给您的错误或警告消息。包括行号和潜在的函数名称。帮助您找到错误/警告的实际位置。
要学习的第二课:函数中的局部变量实际上只是该函数的局部变量。两个名称相同但功能不同的变量仍然是两个不同的变量,彼此之间没有任何联系。