我目前卡在这个问题上,但不知道我做错了什么:
完成函数add10()制作程序 可以为每个用户输入的整数加 10。 (注意:您应该只更改函数 add10() 的代码。不要更改其他代码。)
提供给我的原始代码是这样的:
#include <iostream>
#include <iomanip>
using namespace std;
//TODO: complete this function, do NOT change other code
void add10()
{
}
//Please do NOT change the following code
void main()
{
int n;
cin >> n;
add10(n);
cout << n;
}
我已经如下所示编辑了上面的代码,但它仍然返回与用户输入相同的值:
#include <iostream>
#include <iomanip>
using namespace std;
//TODO: complete this function, do NOT change other code
int add10(int n)
{
return n += 10;
}
//Please do NOT change the following code
void main()
{
int n;
cin >> n;
add10(n);
cout << n;
}
有人可以帮我解释一下如何修复我的代码以及我做错了什么吗?谢谢!
最佳答案
从main
代码可以看出,add10
的返回值被丢弃了。这意味着您也可以将其声明为 void
并且不返回任何内容。
您不想修改作为参数传递给您的函数的值,而是希望通过引用传递它:
void add10(int& n)
这将允许您对 add10
函数中的 n
执行明显的修改。
考虑阅读一些关于通过引用传递的教程,here是一个例子。
Here是关于按值传递参数和按引用传递参数之间的区别的 SO 问题。
关于c++ - 关于简单 C++ 函数的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43434622/