0

コードをコンパイルできないようです-これは私が得ているエラーです:

6 \ problem11.cpp(21):エラーC2660:'calcScore':関数は0個の引数を取りません

これを解決するためのヘルプや提案はありますか?これは宿題の問題であり、エラーを修正する方法がわからないようです。まだ配列を使用することは許可されていません。

#include <iostream>

using namespace std;

void getJudgeData(int);
void calcScore(float, float, float, float, float);
float findHighest(float, float, float, float, float);
float findLowest(float, float, float, float, float);

    int main()
    {
        getJudgeData(1);
        getJudgeData(2);
        getJudgeData(3);
        getJudgeData(4);
        getJudgeData(5);
        calcScore();

        system("pause");
        return 0;
    }

    void getJudgeData(int jnumber)
{
    float score1, score2, score3, score4, score5;

    switch(jnumber)
    {
        case 1: cout << "\nEnter the score for judge " << jnumber << ". ";
                cin >> score1;
                break;
        case 2: cout << "\nEnter the score for judge " << jnumber << ". ";
                cin >> score2;
                break;
        case 3: cout << "\nEnter the score for judge " << jnumber << ". ";
                cin >> score3;
                break;
        case 4: cout << "\nEnter the score for judge " << jnumber << ". ";
                cin >> score4;
                break;
        case 5: cout << "\nEnter the score for judge " << jnumber << ". ";
                cin >> score5;
                break;
                calcScore(score1, score2, score3, score4, score5);
    }
}

void calcScore(float one, float two, float three, float four, float five)
{
    float high, low, avg;

        high = findHighest(one, two, three, four, five);
        low = findLowest(one, two, three, four, five);

        avg = ((one + two + three + four + five) - (high+low))/3;

        cout << "Final score is: " << avg <<endl;
        return;
}

float findHighest(float high1, float high2, float high3, float high4, float high5) // find highest score 
{
    float high = 10;

        if (high1 > high)
        {
             high1 = high;
        }
        else if ( high2 > high)
        {
             high2 = high;
        }
        else if ( high3 > high)
        {
             high3 = high;
        }
        else if (high4 > high)
        {
             high4 = high;
        }
        else if ( high5 > high)
        {
             high5 =  high;
        }

        return  high;
}

float findLowest (float low1, float low2, float low3, float low4, float low5) // find lowest score
{
    float low = 1;

        if (low1 < low)
        {
            low1 = low;
        }
        else if (low2 < low)
        {
            low2 = low;
        }
        else if (low3 < low)
        {
            low3 = low;
        }
        else if (low4 < low)
        {
            low4 = low;
        }
        else if (low5 < low)
        {
            low5 = low;
        }

        return low;
}
4

2 に答える 2

2

あなたはラインを持っています

calcScore();

ただし、関数には引数が必要です(コードの残りの部分で宣言および定義されているとおり)。

引数を追加してください!

于 2013-03-07T01:06:38.050 に答える
1
calcScore();

コンパイラーが言うように、関数は4つのパラメーターを予期しているため、これを行うことはできません。

あなたがやりたいことを私が理解しているかどうか見てみましょう。これらの変更を行う

float getJudgeData(int jnumber) //return the score
{
    float score; // only one score neeeded

    ...
    //calcScore(score1, score2, score3, score4, score5);
}

calcScore以来、最後の行を削除できます

a)とにかく到達することはなく、スイッチ内のbreakステートメントの後です。
b)この時点でスコアは1つになります。

int main()
{
    float score1, score2, score3, score4, score5;
    score1=getJudgeData(1);
    score2=getJudgeData(2);
    score3=getJudgeData(3);
    score4=getJudgeData(4);
    score5=getJudgeData(5);
    calcScore(score1, score2, score3, score4, score5);
    ...
}

これはあなたが望むことをするかもしれません-それぞれのフロートを手に入れて、それらを呼び出しcalcScoreてください。

于 2013-03-07T01:06:53.963 に答える