2016-11-26 235 views
0

對於我的班級,我正在爲CSC學生做一個「測試」。我已經決定在向用戶顯示測試的函數中,將測試的所有答案存儲在一個數組中。一旦測試完成(在一個單獨的功能中),如果輸入了正確的引腳,用戶可以選擇對測試進行評分。在輸入正確的引腳後,該功能將調用「等級」功能。我的問題是,一旦在第一個函數中完成了測試,我該如何使用數組副本調用第二個函數,以便我可以使用相同的副本調用分數函數,以便測試可以分級? 這是我到目前爲止嘗試過的。如何將數組從一個函數傳遞到另一個函數

int main(){ 
    int answers[15]; /* idea was answers would be a copy of givenAnswer 
in input function. then would be called in AnswerKeyPrompt*/ 

    input(givenAnswers); 
    answerKeyPrompt(answers);} 


    void input(int* givenAnswers){ 
    // this is where the test display test and all user input is stored in array 
    givenAnswers 

    void answerKeyPrompt(int){ 
    // this function will ask user for pin. if correct pin is entered it will call grade function with copy of givenAnswers} 

    void grade(int){ 
    // this function takes givenAnswers and compares it to answerKey array and calculates grade} 

當我這樣做時,我得到一個從int到int *的無效轉換。感謝您的幫助,任何 。

+0

你問爲什麼你不能int數組傳遞給接受一個int的函數嗎? –

+1

你能顯示你正在使用的實際代碼嗎? – iguarna

+0

我花了將近兩天的時間試圖弄清楚如何做到這一點,並且我意識到我可以在全局聲明數組,並且不必調用它。不管怎麼說,多謝拉。 –

回答

0

數組通常作爲指針傳遞。你需要聲明你的函數是這樣的:

void answerKeyPrompt(int *a) 

(通知*前的參數名稱指示指針)

相關問題