2017-07-26 8 views
0

私は2つの入力ファイルを読み込み、二つのファイルからいくつかのデータをソートするために持っているプログラムを持っています。私は物事のほとんどを理解しているが、私はより厳格な配列を私の関数に渡そうとしているが、それは機能していない。私のプログラムは、多くのエラーを示している、「エラー:コールに該当する関数 『getPercentScore』に」

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 1つの入力ファイルを呼び出した

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(表[30]、鍵)への呼び出しに該当する機能。 ^ ~~~~~~~~~~~~~~ ../lab8.cpp:33:8:注:実行可能ではない候補機能:第一のための「テスト*」から「テスト*」から知られていない変換引き数 double getPercentScore(テスト*、ストリングキー);

非常に参考になります。

+0

注意を私はあなたを助けた

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

・ホープ30]; '、後で' table [30] 'を使うとトラブルが発生します。 – fzd

+0

を渡すと、 'テスト[30]'、あなたが方法に使用するアレイの孤独な位置を通過しています。あなたのループで 'getPercentScore(test [i]、key);'を意味すると思いますか? – Shirkam

+0

すべての#includeディレクティブを投稿するのを忘れました。彼らは重要です、あなたの質問を投稿する前にそれらを編集することは決してありません。 –

答えて

0

まず、テストアレイを作成しよう:としてfunctions.cppの宣言関数getPercentScore(AT

test table[30]; 

)を:(getPercentScore内部テーブルの任意の参照を置き換える、また

double getPercentScore(test tbl[], string key) 

)本体tblで。

あなたは、配列のサイズを知っているような追加のパラメータとして渡したい場合:あなたは `テスト*テーブル[を宣言した場合、...

関連する問題