У меня есть вызов к 2 функциям, которые находят самый высокий и самый низкий балл соответственно. они возвращают «самую высокую оценку» и «самую низкую оценку», но я запутался, почему ошибка появляется при компиляции. Это лабораторное задание, и большая часть кода была написана заранее, и мне было поручено заполнить недостающий код. Ошибка возникает вокруг строк 55 и 63, а функции, на которые я ссылаюсь, находятся в конце кода.
Я новичок в использовании массивов, поэтому я предполагаю, что у меня может быть несколько для ошибочного кода внутри функций "findHighest" и "findLowest". Например, программа в «findHighest» будет предполагать, что первый массив, с которым она работает, имеет наивысшую оценку, и будет сравнивать оставшиеся массивы с ней, пока не найдет более высокий массив. Если это так, то он назначит этот массив «самыми точными».
float findAverage(const GradeType, int);
int findHighest(const GradeType, int);
int findLowest(const GradeType, int);
int main()
{
GradeType grades;
int numberOfGrades;
int pos;
float avgOfGrades;
int highestGrade;
int lowestGrade;
// Read in the values into the array
pos = 0;
cout << "Please input a grade from 1 to 100, (or -99 to stop)" << endl;
cin >> grades[pos];
int i = 1;
while (grades[pos] != -99)
{
// read in more grades
pos = i;
cout << "Please input a grade from 1 to 100, (or -99 to stop)" << endl;
cin >> grades[pos];
}
numberOfGrades = pos; // Fill blank with appropriate identifier
// call to the function to find average
findAverage(grades, numberOfGrades);
avgOfGrades = findAverage(grades, numberOfGrades);
cout << endl << "The average of all the grades is " << avgOfGrades << endl;
// Fill in the call to the function that calculates highest grade
findHighest(grades, highestGrade);
highestGrade = findHighest(grades, highestGrade);
cout << endl << "The highest grade is " << highestGrade << endl;
// Fill in the call to the function that calculates lowest grade
findLowest(grades, lowestGrade);
// Fill in code to write the lowest to the screen
lowestGrade = findLowest(grades, lowestGrade);
cout << endl << "The lowest grade is " << lowestGrade << endl;
return 0;
}
float findAverage(const GradeType array, int size)
{
float sum = 0; // holds the sum of all the numbers
for (int pos = 0; pos < size; pos++)
sum = sum + array[pos];
return (sum / size); //returns the average
}
int findHighest(const GradeType array, int size)
{
// Fill in the code for this function
float highestGrade = array[0];
for (int i = 0; i < size; i++)
{
if (array[i] > highestGrade)
highestGrade = array[i];
}
return highestGrade;
}
int findLowest(const GradeType array, int size)
{
// Fill in the code for this function
float lowestGrade = array[0];
for (int i = 1; i < size; i++)
{
if (array[i] < lowestGrade)
lowestGrade = array[i];
}
return lowestGrade;
}
Программа не может вывести самую высокую и самую низкую оценку из-за ошибки.