提问人:monki_mayn 提问时间:3/25/2023 最后编辑:Remy Lebeaumonki_mayn 更新时间:3/25/2023 访问量:53
如何在 C++ 中将变量从一个函数传递到另一个函数?[已结束]
How do I pass a variable from a function to another in C++? [closed]
问:
#include <iostream>
const double pi{3.14};
double radius()
{
std::cout << "What is the radius of your circle?\n";
double radius{};
std::cin >> radius;
return radius;
}
void circumfrence()
{
double circumfrence{2 * pi * radius()};
std::cout << "The circumfrence of your circle is " << circumfrence << std::endl;
}
void area()
{
double area{pi * radius() * radius()}
}
我正在尝试将变量从 传递给 ,但似乎无法弄清楚。我知道现在我的代码会运行两次,这不是我想要的。我正在练习使用函数,所以这就是为什么我不只是要求 的局部范围内的半径。radius
radius()
area()
radius()
area()
我尝试执行以下操作以尝试通过引用传递参数,但是在其他函数中不断收到“标识符未定义”错误。
void radius(double& radius)
{
std::cout << "What is the radius of your circle?\n";
double radius{};
std::cin >> radius;
}
答:
2赞
user253751
3/25/2023
#1
这可能是一个脑洞大开的屁,因为我想你已经知道如何做到这一点:
void area()
{
double r{radius()};
double area{pi * r * r};
std::cout << "The area is " << area << "\n";
}
评论
0赞
user253751
3/25/2023
您也可以选择创建函数的输入参数r
area
0赞
Remy Lebeau
3/25/2023
#2
首先,您不应该将局部变量的名称与声明它们的函数相同。对变量使用唯一名称。
现在,在第一个代码片段中,只需将返回值保存到局部变量,然后根据需要使用它:radius()
void area()
{
double l_radius{radius()};
double l_area{pi * l_radius * l_radius};
std::cout << "The area of your circle is " << l_area << std::endl;
}
在第二个代码片段中,只需删除局部变量,然后直接读入参数:
void radius(double& a_radius)
{
std::cout << "What is the radius of your circle?\n";
std::cin >> a_radius;
}
void circumference()
{
double l_radius{};
radius(l_radius);
double l_circumference{2 * pi * l_radius};
std::cout << "The circumference of your circle is " << l_circumference << std::endl;
}
void area()
{
double l_radius{};
radius(l_radius);
double l_area{pi * l_radius * l_radius};
std::cout << "The area of your circle is " << l_area << std::endl;
}
评论