2016-11-26 6 views
0

Pour ma classe, je fais un «test» pour un étudiant du SCC. J'ai décidé dans la fonction qui affiche le test à l'utilisateur, de stocker toutes les réponses au test dans un tableau. Une fois le test terminé (dans une fonction séparée), l'utilisateur aura la possibilité de noter le test si la bonne broche est saisie. Une fois la bonne broche entrée, cette fonction appellera la fonction "grade". Ma question est, une fois que le test est terminé dans la première fonction comment puis-je appeler la deuxième fonction avec une copie du tableau afin que je puisse appeler la fonction de notation avec la même copie afin que le test peut être évalué? C'est ce que j'ai essayé jusqu'ici.Comment passer un tableau d'une fonction à une autre fonction

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} 

lorsque je fais cela, j'obtiens une conversion invalide de int à int *. Merci pour toute aide .

+0

Demandez-vous pourquoi vous ne pouvez pas fournir un tableau de ints à une fonction qui prend un int? –

+1

pouvez-vous montrer le code que vous utilisez actuellement? – iguarna

+0

J'ai passé presque deux jours à essayer de comprendre comment faire cela et je me suis juste rendu compte que je pouvais simplement déclarer le tableau globalement et je ne devrais pas l'appeler. Merci quand même. –

Répondre

0

Les tableaux sont généralement passés comme un pointeur. Vous devez déclarer votre fonction comme ceci:

void answerKeyPrompt(int *a) 

(avis * avant le nom d'argument indiquant un pointeur)