2010-04-30 3 views
0

erreur C2065: 'exam1': identificateur non déclaréd'erreur et je ne sais pas pourquoi C++

// basic file operations 
#include <iostream> 
#include <fstream> 
using namespace std; 
void read_file_in_array(int exam[100][3]); 
double calculate_total(int exam1[], int exam2[], int exam3[]); // function that calcualates grades to see how many 90,80,70,60 
//void display_totals(); 

int main() 
{ 
    int go,go2,go3; 
    go=read_file_in_array(exam); 
    go2=calculate_total(exam1,exam2,exam3); 
    //go3=display_totals(); 
    cout << go,go2,go3; 
    return 0; 
}/* 
int display_totals() 
{ 

    int grade_total; 
    grade_total=calculate_total(exam1,exam2,exam3); 
    return 0; 
} */ 
double calculate_total(int exam1[],int exam2[],int exam3[]) 
{ 
    int calc_tot,above90=0, above80=0, above70=0, above60=0,i,j; 
    calc_tot=read_file_in_array(exam); 
    for(i=0;i<100;i++) 
     { 
      exam1[i]=exam[100][0]; 
      exam2[i]=exam[100][1]; 
      exam3[i]=exam[100][2]; 
      if(exam1[i] <=90 && exam1[i] >=100) 
       { 
        above90++; 
        cout << above90; 
       } 
     } 
     return exam3[i]; 

} 

void read_file_in_array(double exam[100][3]) 
{ 
    ifstream infile; 

    int num, i=0,j=0; 
    infile.open("grades.txt");// file containing numbers in 3 columns 
    if(infile.fail()) // checks to see if file opended 
    { 
     cout << "error" << endl; 
    } 
    while(!infile.eof()) // reads file to end of line 
     { 
      for(i=0;i<100;i++) // array numbers less than 100 
      { 
      for(j=0;j<3;j++) // while reading get 1st array or element 
      infile >> exam[i][j]; 
      infile >> exam[i][j]; 
      infile >> exam[i][j]; 
      cout << exam[i][j] << endl; 
      } 
      exam[i][j]=exam1[i]; 
      exam[i][j]=exam2[i]; 
      exam[i][j]=exam3[i]; 

     } 
    infile.close(); 

} 
+0

Le texte "examens" ne figure même pas dans l'extrait de code que vous avez publié. S'il vous plaît poster le message d'erreur réel que vous recevez. –

+1

'exam' est utilisé sans être déclaré dans' main() 'et' calculate_total() '. –

+0

Je pense qu'il voulait dire "examen" pas "examens" – nc3b

Répondre

1
go=read_file_in_array(exam); 

exam est pas déclarée dans le champ d'application principal: - ? Que diriez-vous de le déclarer (peut-être int exam[100][3])

1

Apparemment Vous n'avez pas déclaré les identifiants "exam", "exam1", "exam2" et "exam3".

Cette ligne:

void read_file_in_array(int exam[100][3]); 

déclare identifiant read_file_in_array mais pas l'examen.

Vous devez dire à votre compilateur ce qu'est un examen et pas seulement cela. Déclarer qu'il pourrait rendre votre fichier à compiler, mais ce n'est pas suffisant pour qu'un programme fonctionne. Vous devez réellement le définir. La définition est aussi une déclaration, donc la définition fera l'affaire. examen est utilisé dans le cadre de la principale, donc je pense que vous pouvez définir l'examen comme une variable locale dans le principal. Essayez ceci

int main() 
{ 
    int go,go2,go3; 
    int exam[100][3]; 
    int exam1[100]; 
    int exam2[100]; 
    int exam3[100]; 
    go=read_file_in_array(exam); 
    go2=calculate_total(exam1,exam2,exam3); 
    //go3=display_totals(); 
    cout << go,go2,go3; 
    return 0; 
}/* 
Questions connexes