我的代码有问题,因为我无法弄清楚为什么会收到错误。这是代码:
I'm having issue with my code, in that I can't figure out why I'm receiving an error. Here is the code:
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
void getScore(int &, int &, int &, int &,int &);
void calcAverage(double );
int findLowest(int , int , int , int , int );
int main()
{
int num1, num2, num3, num4, num5;
string response;
getScore(num1, num2, num3, num4, num5);
calcAverage(num1, num2, num3, num4, num5);
cout << "Are there any more test scores?" << endl;
cin >> response;
cout << endl;
if (response == "yes")
{
getScore(num1, num2, num3, num4, num5);
calcAverage(num1, num2, num3, num4, num5);
}
system("pause");
return 0;
}
void getScore(int &num1, int &num2, int &num3, int &num4, int &num5)
{
cout << "What was your score for the first test?" << endl;
cin >> num1;
cout << endl;
if (num1 < 1 || num1 > 100)
{
cout<<"Scores must be between 1 and 100, re-enter the score" << endl;
cin >> num1;
}
cout << "What was your score for the second test?" << endl;
cin >> num2;
cout << endl;
if(num2 < 1 || num2 > 100)
{
cout<<"Scores must be between 1 and 100, re-enter the score" << endl;
cin >> num1;
}
cout << "What was your score for the third test?" << endl;
cin >> num3;
cout << endl;
if(num3 < 1 || num3 > 100)
{
cout<<"Scores must be between 1 and 100, re-enter the score" << endl;
cin >> num1;
}
cout << "What was your score for the fourth test?" << endl;
cin >> num4;
cout << endl;
if(num4 < 1 || num4 > 100)
{
cout<<"Scores must be between 1 and 100, re-enter the score" << endl;
cin >> num1;
}
cout << "What was your score for the fifth test?" << endl;
cin >> num5;
cout << endl;
if(num5 < 1 || num5 > 100)
{
cout<<"Scores must be between 1 and 100, re-enter the score" << endl;
cin >> num1;
}
}
int findLowest(int num1, int num2, int num3, int num4, int num5)
{
int lowest;
lowest = num1;
if (num2 < lowest)
{
lowest = num2;
}
else if (num3 < lowest)
{
lowest = num3;
}
else if (num4 < lowest)
{
lowest = num4;
}
else if (num5 < lowest)
{
lowest = num5;
}
cout << "the lowest test score is " << lowest << endl;
return lowest;
}
void calcAverage(int num1, int num2, int num3, int num4, int num5)
{
int findLowest(int, int, int, int, int);
int lowest;
double average;
findLowest(num1, num2, num3, num4, num5);
cout << lowest << endl;
average = (((float)num1 + num2 + num3 + num4 + num5) - lowest) / 4.0;
cout << showpoint << setprecision(8) << average << endl;
}
我的错误是:错误 2 错误 C2660:"计算平均值":函数不接受 5 个参数
它显示在第 18 行和第 26 行,但我不确定它到底出了什么问题。有人可以帮我解释一下吗?
你声明这个:
void calcAverage(double );
而不是:
void calcAverage(int num1, int num2, int num3, int num4, int num5)
你对编译器说:"我要做一个名字为calcAverage的函数,它需要1个参数",然后实现一个有5个参数的函数calcAverage,所以他抛出了一个错误。
void calcAverage(double );
在这里,您将函数声明为calcAverage
接受一个类型为 double
的参数,但随后尝试像这样调用它:
calcAverage(num1, num2, num3, num4, num5);
文件底部的函数定义像您想要的那样采用 5 个整数,问题是 c++ 编译器从上到下扫描文件。这意味着当它到达您尝试使用 5 个参数调用calcAverage
的部分时,它只看到文件顶部的函数声明采用单个参数,甚至还没有看到它的定义。
要修复它,只需更改声明以采用与您的定义相同的参数:
void calcAverage(double );
自:
void calcAverage(int num1, int num2, int num3, int num4, int num5);
在文件的顶部。
相关文章:
- 将鼠标悬停在问题上时与预期">"相关的代码错误
- VI工作室代码错误无法打开输出文件主.exe
- 引入参数化构造函数后显示 LNK 2019 未解析外部符号的代码错误
- 有关矩阵的代码错误导致分段错误(内核转储)
- C++ Schannel POST 400 错误代码错误请求
- Java 本机访问代码错误:"Invalid memory access"
- 代码错误修改
- C++代码错误分配
- "_FCbuild"不能用作函数 - C/C++ 代码错误
- 我的代码错误类型警告 1 警告 C4018 和更多错误
- 代码错误(从 1 到 100 找到质数)
- OpenCV VisualStudio,C 代码错误尝试访问像素
- 当我使用的教程完全没有错误时,为什么我的代码错误
- 简单的NOOB C 输入/输出问题:代码错误
- 为什么enumProcessModules返回false值和299代码错误
- WinhttpSetoption()失败设置TLSV1.2,带有错误代码错误_internet_incorrect_ha
- 苹果安全传输代码错误
- C++ - 国际象棋主教移动代码错误
- 导入Python库时,嵌入了Python代码错误
- 编译提升C 代码错误