![](/img/trans.png)
[英]Xcode: error: expected '(' for function-style cast or type construction
[英]'(' for function-style cast or construction type Xcode error
This is where I get error:
calcScore(double score1,double score2, double score3, double score4, double score5);
這是我的代碼,我不知道該如何解決錯誤; 我不確定該錯誤意味着什么。 我曾嘗試在教科書和在線上查看示例,但仍感到困惑; 這是我們必須使用功能的第一個任務
#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;
}
讓我們首先處理您的錯誤:正如@ shree.pat18在注釋中指出的那樣,您正在調用一個函數並嘗試提供參數的類型。 這是不允許的。 C ++ 知道參數的類型,因為您之前已經聲明了它們。 您可以像這樣調用calcScore
:
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);
但是,這帶來了一個新問題:在編譯時,編譯器不知道名為calcScore
的函數,該函數需要5個double
類型的參數。
您在聲明兩個稱為calcScore
函數:一個簡單地聲明且未定義為沒有參數,另一個則聲明並定義為參數:
// just a declaration. This function has no definition and will not link
void calcScore();
和
// declared and defined
void calcScore( double score1, double score2, double score3, double score4,double score5)
{
}
您可以刪除calcScore
的第一個聲明,因為我假設您不需要這兩個聲明,並將其更改為:
void calcScore(double score1, double score2, double score3, double score4, double score5);
現在,當你嘗試調用calcScore
和5通double
內的main
,編譯器會知道你指的是什么功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.