Описание программы ниже.Когда я пытаюсь скомпилировать, я получаю сообщение об ошибке 'cannot convert 'double' to 'double**' for argument
.
Напишите программу, которая динамически выделяет массив, достаточно большой для хранения определенного пользователем количества тестов.Как только все оценки введены, массив должен быть передан в функцию, которая сортирует их в порядке возрастания.Должна быть вызвана другая функция, которая вычисляет средний балл.Программа должна отображать отсортированный список оценок и средних значений с соответствующими заголовками.
ПРИМЕЧАНИЕ. Я довольно новичок в использовании указателей в C ++ и понимаю, что ошибка в моем коде может быть довольно легконекоторые заметить, так что, пожалуйста, идите спокойно.Кроме того, если есть какие-либо предложения относительно того, что я могу улучшить, или где я могу найти дополнительные ссылки на указатели, это было бы здорово!
#include <iostream>
#include <iomanip>
using namespace std;
//Function Prototypes
void arrSelectionSort( double *[], int );
double testAverage( double *[], int );
int main() {
double *testScores; //To dynamically allocate an array
int numTest; //To hold the number of test - size of array
int count; //Counter variable
//User input
cout <<"Please enter the number of test scores: ";
cin >> numTest;
//Dynamically allocate an array for test scores
testScores = new double[numTest];
//Obtain the individual test scores from user
cout << "\nEnter each test score.\n";
for ( count = 0; count < numTest; count++ ) {
cout << "Test " << ( count + 1 ) << ": " << endl;
cin >> testScores[count];
}
//Function call to sorting algorithm
arrSelectionSort( testScores, numTest );
//Display sorted array
cout << "Here are the sorted test scores.\n";
for ( int x = 0; x < numTest; x++ ) {
cout << "\nTest " << (x+1) << ": " << testScores[x];
}
//Display average of all test scores
cout <<"\nAverage of all test scores is: " << testAverage( testScores, numTest );
//Free up allocated memory
delete [] testScores;
testScores = 0;
return 0;
}
void arrSelectionSort( double *arr[], int size ) {
int startScan, minIndex;
double *minElement;
for ( startScan = 0; startScan < ( size - 1 ); startScan++ ) {
minIndex = startScan;
minElement = arr[startScan];
for ( int index = startScan + 1; index < size; index ++ ) {
if (*(arr[index]) < *minElement) {
minElement = arr[index];
minIndex = index;
}
}
arr[minIndex] = arr[startScan];
arr[startScan] = minElement;
}
}
double testAverage( double *arr[], int size ) {
double average;
double total;
//Accumulating Loop
for ( int count = 0; count < size; count++ ) {
total += arr[count];
}
average = total/size;
return average;
}