C++函数错误
C++ function error
因此,对于这项作业,我需要询问评委的分数并计算平均值。还没有到计算部分,但我已经完成了所有的get score函数。一切看起来都很好,它编译了,但当我测试时,它从来没有输出第一个cout,它在第一个coud给了我一个断点,我不知道为什么。顺便说一下,如果这很重要的话,可以使用Xcode。此外,我应该使用pass-by-reference还是"return score1;"实现了这个目的?
这是代码:
#include <iostream>
using namespace std;
void getJudgeData(double&);
int main()
{
double score1, score2, score3, score4, score5;
getJudgeData(score1);
getJudgeData(score2);
getJudgeData(score3);
getJudgeData(score4);
getJudgeData(score5);
return 0;
}
void getJudgeData(double& score)
{
cout << "Submit your score: ";
cin >> score;
while (score < 0.0 || score > 10.0)
{
cout << "Please re-enter a score between 0 - 10" << endl;
cin >> score;
}
}
您实际上并没有从函数中读取任何内容。
建议的替代方案:
double getJudgeData()
{
double score
cout << "Submit your score:";
cin >> score;
while (score < 0.0 || score > 10.0)
{
cout << "Please re-enter a score between 0 - 10" << endl;
cin >> score;
}
return score;
}
int main()
{
double score1, score2, score3, score4, score5;
double highest, lowest;
score1 = getJudgeData();
score2 = getJudgeData();
...
我应该使用pass-by-reference吗?
在这段代码中,我认为使用pass-by-reference会更好。
这些调用与您的声明不匹配。
getJudgeData1(score1);
getJudgeData2(score2);
getJudgeData3(score3);
...
您的声明需要形式参数中的引用,如:
// ------------------------v
double getJudgeData1(double& score1);
double getJudgeData2(double& score2);
double getJudgeData3(double& score3);
...
现在,您不再需要返回一个值:
void getJudgeData1(double& score1);
void getJudgeData2(double& score2);
void getJudgeData3(double& score3);
...
如果你能回忆起形式参数和实际参数的区别,你只需要一个getJudgeData(…)函数。
祝好运
使用g++编译时,我可以看到输出。你可以尝试的一件事是在你的cout之后使用flush(即cout<<"提交你的分数:"<<flush;)。如果这不起作用,我的最佳猜测是你的输出正在被过滤,或者你可能没有在正确的视图中寻找输出。请检查是否在调试器面板中选择了"所有输出"。
哦,关于你问题的第二部分,你传递给函数的double是按值的。正如paulsm4所强调的,您可以用一个局部变量替换它们,然后返回它。如果你想通过引用传递它们,你必须使用操作员的地址:
double getJudgeData(double& score);
您应该更改两件事。
- 更改函数声明并使用传递引用。double getJudgeData1(double&score1)
- 您应该std::cout输出到控制台。
cout<<score1<<score2;
相关文章:
- 链接器错误:函数的多个定义
- 编译器错误:函数调用在常量表达式中必须有一个常量值
- 错误:函数声明符之后的预期函数体
- C 错误 - 函数不能超载
- 如何修复传递参数时调用错误函数的主函数?(C++)
- 错误:函数调用中有两个参数
- 错误:函数不是“类”的静态数据成员 - C++
- C ,G 编译错误函数
- CMake 解析错误函数缺少结尾")"。而是找到带有文本的未终止字符串")
- C++ 错误 函数 2 的多重定义
- 错误:函数调用中从int到int(*)[4]的转换无效
- C++14 自动扣除错误:函数返回一个数组
- 视觉C++错误:函数必须返回一个值
- 错误:函数声明中的两种或多种数据类型
- 错误:函数未在作用域中声明
- rtw_android.c错误:函数“strnicmp”的隐式声明[-Weror=隐式函数声明]
- 错误:函数中的return语句没有值,返回“void*”[-fpermission]
- 简单程序中的链接器错误:函数的多重定义
- 错误:函数参数太多
- 错误:函数__tmaincrtstartup中引用的未解析的外部符号_main