#visual-c
#visual-c
Вопрос:
// Description: This program calculates the average of a group of five test scores where the group is dropped.
#include <iostream>
using namespace std;
void getScore(double);
void findLowest(double, double, double, double, double, double);
void calcAverage(double, double, double, double, double, double);
int main()
{
double ix, iy, iz, iw, ib;
getScore(ix);
getScore(iy);
getScore(iz);
getScore(iw);
getScore(ib);
calcAverage(ix, iy, iz, iw, ib);
return 0;
}
void getScore(double score)
{
cout << "What is your score?";
cin >> score;
if (score < 0)
{
cout << "Error";
exit(0);
}
}
void findLowest(double ba, double bb, double bc, double bd, double be, double exclude)
{
if (ba < bb amp;amp; ba < bc amp;amp; ba < bd amp;amp; ba < be)
exclude = ba;
else if (bb < ba amp;amp; bb < bc amp;amp; bb < bd amp; bb < be)
exclude = bb;
else if (bc < ba amp;amp; bc < bb amp;amp; bc < bd amp;amp; bc < be)
exclude = bc;
else if (bd < ba amp;amp; bd < bb amp;amp; bd < bc amp;amp; bd < be)
exclude = bd;
else
exclude = be;
}
void calcAverage(double aa, double ab, double ac, double ad, double ae, double drop)
{
double average;
findLowest(aa, ab, ac, ad, ae, drop);
average = (aa ab ac ad ae - drop) / 4;
cout << "The test score we are dropping is " << drop << endl;
cout << "Your average is " << average << endl;
}
это говорит о том, что у меня недостаточно аргументов в строке 35 (calcAverage в int main), и когда я ввожу другую переменную, это говорит о том, что все мои i в main больше не инициализированы. Я очень смущен и не понимаю, почему это происходит
Ответ №1:
Вы передаете 5 аргументов при вызове, но calcaverage принимает 6 аргументов, верно!
Комментарии:
1. Я пытался добавить переменную ir с ее помощью, а затем она сообщает мне: «неинициализированная локальная переменная «ix»» строка 29, и я тоже не уверен, о чем это
Ответ №2:
Прототипом функции для calcAverage()
является это:
void calcAverage(double, double, double, double, double, double);
//Note 6 arguments.
Вы вызываете это следующим образом:
calcAverage(ix, iy, iz, iw, ib); //Note 5 arguments
Следовательно, компилятор жалуется на меньшее количество аргументов, чем ожидалось.
Кроме того, все эти переменные:
double ix, iy, iz, iw, ib;
Все эти переменные не инициализированы, и, следовательно, в функцию передаются неопределенные значения. Это могут быть любые значения между минимальным двойным и максимальным двойным диапазоном.