M10 Pointers
unknown
c_cpp
2 years ago
2.4 kB
6
Indexable
// // main.cpp // M10Pointers_Xu // // Created by Ashley Xu on 12/10/23. // #include <iostream> #include <algorithm> using namespace std; // Function prototypes void getTestScores(double *scores, int numScores); void sortScores(double *scores, int numScores); double calculateAverage(const double *scores, int numScores); void displayResults(const double *scores, int numScores, double average); int main() { // get number of test scores from user int numScores; cout << "Enter the number of test scores: "; cin >> numScores; // validate input for a positive number of test scores while (numScores <= 0) { cout << "Please enter a positive number of test scores: "; cin >> numScores; } // dynamically allocate array to hold the test scores double *testScores = new double[numScores]; // get test scores from user getTestScores(testScores, numScores); // sort test scores in ascending order sortScores(testScores, numScores); // calculate the average of the test scores double average = calculateAverage(testScores, numScores); // display sorted list of scores and the average displayResults(testScores, numScores, average); // deallocate the dynamically allocated memory delete[] testScores; return 0; } void getTestScores(double *scores, int numScores) { // get test scores from user for (int i = 0; i < numScores; ++i) { cout << "Enter test score #" << (i + 1) << ": "; cin >> scores[i]; // validate input for non-negative test scores if (scores[i] < 0) { cout << "Please enter a non-negative test score.\n"; } } } void sortScores(double *scores, int numScores) { // Use sort to sort scores in ascending order sort(scores, scores + numScores); } double calculateAverage(const double *scores, int numScores) { // calculate the average of the test scores double sum = 0.0; for (int i = 0; i < numScores; ++i) { sum += scores[i]; } return (numScores > 0) ? (sum / numScores) : 0.0; } void displayResults(const double *scores, int numScores, double average) { // display the sorted list of scores and the average cout << "\nSorted List of Test Scores: " << endl; for (int i = 0; i < numScores; ++i) { cout << *(scores + i) << endl; } cout << "\nAverage Test Score: " << average << endl; }
Editor is loading...
Leave a Comment