我的程序显示了很多错误,“错误:没有匹配函数来调用'getPercentScore'”

时间:2017-07-26 07:55:32

标签: c++

我有一个程序必须读取两个输入文件并从这两个文件中排序一些数据。我已经想出了大部分的事情,但我一直试图将更严格的数组传递给我的函数,但它不起作用。

int main()
{
    int labNumber=8;
    string labName = "MATH ANYONE";
    printHeader(labName, labNumber);

    ifstream    infile;             //INPUT input file stream

    struct test {
        string firstName;           //INPUT student first name
        string lastName;            //INPUT student last name
        string tempfirstName;       //INPUT temporary first name used to place into actual
        string templastName;        //INPUT temporary last name used to place into actual
        string tempId;              //INPUT temporary id used to compare with actual
        string studentId;           //INPUT student id
        double courseScore;         //OUTPUT student score %
        char courseGrade;           //OUTPUT student letter grade
        string answers;             //INPUT student answer
    };
    test *table[30];

这只是我代码的一部分;我有一个名为functions.cpp的输入文件

    for (int i=0;i<studentCount;i++)
    {
        double percent=0;
        getPercentScore(table[30], key);
    }

functions.cpp:

double getPercentScore(test *, string key)

{
    double tempscore=0;
    double percent;
    for (int i=0;i<20;i++)
    {
        if (table[i].answers[i] == key[i])
        {
            tempscore = tempscore + 2; //add two if answer is correct
        }
        else if (table[i].answers[i] == '_')
        {
            tempscore = tempscore + 0;//add zero if answer if unanswered
        }
        else
        {
            tempscore = tempscore - 1;//subtract one for wrong answer
        }
    }
    percent = tempscore/40;
    percent = percent*100;
    return percent;
}

我的程序一直在给我这个错误,我不知道如何解决它:

../ lab8.cpp:112:3:错误:调用'getPercentScore'没有匹配函数                 getPercentScore(table [30],key);                 ^ ~~~~~~~~~~~~~~ ../lab8.cpp:33:8:注意:候选函数不可行:第一个参数没有从'test *'到'test *'的已知转换 double getPercentScore(test *,string key);

任何帮助都会有很大帮助。

1 个答案:

答案 0 :(得分:0)

首先,尝试创建测试数组:

test table[30];

在functions.cpp声明函数getPercentScore()as:

double getPercentScore(test tbl[], string key) 

另外,用tbl替换getPercentScore()体内的表的任何引用。

如果您想知道数组的大小,请将其作为额外参数传递,如:

size_t size = sizeof(table) / sizeof(test);
for (int i=0;i<studentCount;i++)
{
    double percent=0;
    getPercentScore(table, size, key);
}

希望我能帮助你......