This is where I get error: calcScore(double score1,double score2, double score3, double score4, double score5);
ecco il mio codice, non so come correggere l’errore; Non sono sicuro di cosa significhi l’errore. Ho provato a guardare gli esempi nei libri di testo e online ma sono ancora confuso; questo è il primo incarico in cui dobbiamo usare la funzione
#include using namespace std; void getJudgesData(); void calcScore(); int main() { double scoreAverage=-9; double score1=-9.0; double score2=-9.0; double score3=-9.0; double score4=-9.0; double score5=-9.0; getJudgesData(); calcScore(double score1,double score2, double score3, double score4, double score5); return 0; } // getJudgesData Program void getJudgesData(double &score1, double &score2, double &score3, double &score4, double &score5) { do { cout <> score1; do { if (score1 10) { cout << "Score has to range from 0-10 \n"; cout <> score1; } }while (score110); } while (score110); do { cout <> score2; do { if (score2 10) { cout << "Score has to range from 0-10 \n"; cout<> score2; } }while (score2 10); } while (score210); do { cout <> score3; do { if (score3 10) { cout << "Score has to range from 0-10 \n"; cout <> score3; } }while (score3 10); } while (score310); do { cout <> score4; do { if (score4 10) { cout << "Score has to range from 0-10 \n"; cout <> score4; } }while (score4 10); } while (score410); do { cout <> score5; do { if (score5 10) { cout << "Score has to range from 0-10 \n"; cout <> score5; } }while (score5 10); } while (score510); return; } //Start of calcScore void calcScore( double score1, double score2, double score3, double score4,double score5) { double average; average = (score1+score2+score3+score4+score5)/ 5; return; }
Affrontiamo innanzitutto il tuo errore: come @ shree.pat18 fa notare nei commenti, stai chiamando una funzione e stai cercando di dare il tipo dei parametri. Questo non è permesso. C ++ conosce il tipo dei parametri perché li hai dichiarati in precedenza. Puoi chiamare calcScore
modo:
double score1=-9.0; double score2=-9.0; double score3=-9.0; double score4=-9.0; double score5=-9.0; getJudgesData(); calcScore(score1, score2, score3, score4, score5);
Tuttavia, questo ti porta a un nuovo problema: al momento della compilazione, il compilatore non conosce una funzione chiamata calcScore
che prende 5 parametri di tipo double
.
Stai dichiarando due funzioni chiamate calcScore
: una è semplicemente dichiarata e non definita senza parametri, l’altra è dichiarata e definita con parametri:
// just a declaration. This function has no definition and will not link void calcScore();
e
// declared and defined void calcScore( double score1, double score2, double score3, double score4,double score5) { }
È ansible rimuovere la prima dichiarazione di calcScore
poiché presumo che non sia necessario entrambi e modificarlo per essere:
void calcScore(double score1, double score2, double score3, double score4, double score5);
Ora, quando provi a invocare calcScore
e passa 5 double
all’interno del tuo main
, il compilatore saprà a quale funzione ti stai riferendo.