簡體   English   中英

'('用於函數樣式轉換或構造類型Xcode錯誤

[英]'(' 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM