将 void 函数更改为返回值函数
Changing Void function to Return Value function
给定一个当前使用void函数运行的程序:更改程序,使void函数不输出变量的值,而是发送到主函数。
void trackVar(double& x, double y);
int main()
{
double one, two;
cout << fixed << showpoint << setprecision(2);
cout << "Enter two numbers: ";
cin >> one >> two;
cout << endl;
trackVar(one, two);
cout << "one = " << one << ", two = " << two << endl;
trackVar(two, one);
cout << "one = " << one << ", two = " << two << endl;
return 0;
}
void trackVar(double& x, double y)
{
double z;
z = floor(x) + ceil(y);
x = x + z;
y = y - z;
cout << "z = " << z << ", ";
}
我可以得到,所以输出正确列出了一和二的值,但不知道如何将"z"的输出作为主函数的一部分。
最终结果(对于感兴趣的人(:
double trackVar(double& x, double y); ///function prototype (switched to double instead of void)
int main()
{
double one, two, z;
cout << fixed << showpoint << setprecision(2);
cout << "Enter two numbers: ";
cin >> one >> two;
cout << endl;
z = trackVar(one,two);
cout <<"z= "<<z<<" "<<"one= "<<
one<<"two= "<<two<< endl;
z = trackVar(two,one);
cout <<"z= "<<z<<" "<<"one= "<<
one<<"two= "<<two<< endl;
return 0;
}
double trackVar(double& x, double y)
{
double z;
z = floor(x) + ceil(y);
x = x + z;
y = y - z;
return z;
}
检查后,我更新了我的帖子。
试试这个:
void trackVar(double& x, double& y)
{
double z;
z = floor(x) + ceil(y);
x = x + z;
y = y - z;
}
所以,正常函数trackVar(double x, double y)
它会将一个副本 x 和 y 发送到函数中,所以即使你在那里切换它们,也没有任何变化。 但是,如果你使用引用,trackVar(double& x, double& y)
,来改变那里的x和y,它确实会改变值,所以小心使用引用。
举个简单的例子:
void trackVar(double& a, double& b)
{
a = 99;
b = 66;
}
int main()
{
double a = 1;
double b = 2;
trackVar(a, b);
std::cout << "New a: "<< a << std::endl;
std::cout << "New b: " << b << std::endl;
return 0;
}
输出:New a: 99
输出:New b: 66
相关文章:
- 程序不向函数返回值
- 如何将不可移动和不可复制的函数返回值获取到数组中
- 存储函数返回值或立即使用c++
- 如何删除新分配的字符,这也是函数返回值?
- 不从函数返回值会导致段错误
- lambda 函数返回值的有效性
- 如何获取有关 Visual Studio 代码分析中未经检查的函数返回值的警告
- 存储指向函数返回值的指针
- 在 OOP 中,调用函数返回值还是直接调用值更快?
- 函数返回值的自动类型扣除
- 为循环中多次调用的函数返回值预分配内存的正确方法是什么
- 函数返回值的位运算符提升
- 从捕获 constexpr 函数返回值的变量中删除 constexpr 会删除编译时计算
- C++ ReSharper - 生成函数返回值/参数类型的变量
- std::clamp - 检测函数返回值是否绑定到 const T&
- C 递归函数返回值
- 是否可以在C 中使回调函数返回值
- C++标准是否保证函数返回值具有常量地址?
- 将函数返回值传递给引用参数会导致 GCC 中的编译错误
- 函数返回值错误