问题
This is where I get error:
calcScore(double score1,double score2, double score3, double score4, double score5);
here is the my code, I do not know how to fix the error; I am not sure what the error means. I've tried looking at examples in textbook, and online but I am still confused; this is first assignment where we have to use function
#include <iostream>
using namespace std;
void getJudgesData();
void calcScore();
int main()
{
double scoreAverage=-9;
double score1=-9.0;
double score2=-9.0;
double score3=-9.0;
double score4=-9.0;
double score5=-9.0;
getJudgesData();
calcScore(double score1,double score2, double score3, double score4, double score5);
return 0;
}
// getJudgesData Program
void getJudgesData(double &score1, double &score2, double &score3, double &score4, double &score5)
{
do
{
cout << "Enter judges score: ";
cin >> score1;
do
{
if (score1 < 0 || score1 >10)
{
cout << "Score has to range from 0-10 \n";
cout << "Please enter a valid score: ";
cin >> score1;
}
}while (score1<0 || score1 >10);
}
while (score1<0 || score1 >10);
do
{
cout << "Enter judges score: ";
cin >> score2;
do
{
if (score2 < 0 || score2 >10)
{
cout << "Score has to range from 0-10 \n";
cout<< "Please enter a valid score: ";
cin >> score2;
}
}while (score2 <0 || score2 >10);
}
while (score2<0 || score2 >10);
do
{
cout << "Enter judges score: ";
cin >> score3;
do
{
if (score3 < 0 || score3 >10)
{
cout << "Score has to range from 0-10 \n";
cout << "Please enter a valid score: ";
cin >> score3;
}
}while (score3 < 0 || score3 >10);
}
while (score3<0 || score3 >10);
do
{
cout << "Enter judges score: ";
cin >> score4;
do
{
if (score4 < 0 || score4 >10)
{
cout << "Score has to range from 0-10 \n";
cout << "Please enter a valid score: ";
cin >> score4;
}
}while (score4 < 0 || score4 >10);
}
while (score4<0 || score4 >10);
do
{
cout << "Enter judges score: ";
cin >> score5;
do
{
if (score5 < 0 || score5 >10)
{
cout << "Score has to range from 0-10 \n";
cout << "Please enter a valid score: ";
cin >> score5;
}
}while (score5 < 0 || score5 >10);
}
while (score5<0 || score5 >10);
return;
}
//Start of calcScore
void calcScore( double score1, double score2, double score3, double score4,double score5)
{
double average;
average = (score1+score2+score3+score4+score5)/ 5;
return;
}
回答1:
Let's deal with your error first: as @shree.pat18 points out in the comments, you are calling a function and trying to give the type of the parameters. This isn't allowed. C++ knows the type of the parameters because you declared them previously. You can call calcScore
like so:
double score1=-9.0;
double score2=-9.0;
double score3=-9.0;
double score4=-9.0;
double score5=-9.0;
getJudgesData();
calcScore(score1, score2, score3, score4, score5);
However, that brings you to a new problem: At the time of compilation, the compiler doesn't know about a function called calcScore
which takes 5 parameters of type double
.
You are declaring two functions called calcScore
: one is simply declared and not defined with no parameters, and the other is declared and defined with parameters:
// just a declaration. This function has no definition and will not link
void calcScore();
and
// declared and defined
void calcScore( double score1, double score2, double score3, double score4,double score5)
{
}
You can remove the first declaration of calcScore
since I assume you don't need both, and change it to be:
void calcScore(double score1, double score2, double score3, double score4, double score5);
Now when you try to invoke calcScore
and pass in 5 double
within your main
, the compiler will know what function you are referring to.
来源:https://stackoverflow.com/questions/33747892/for-function-style-cast-or-construction-type-xcode-error