我有一个程序必须读取两个输入文件并从这两个文件中排序一些数据。我已经想出了大部分的事情,但我一直试图将更严格的数组传递给我的函数,但它不起作用。
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);
任何帮助都会有很大帮助。
答案 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);
}
希望我能帮助你......