Instructions:
1. Array Locator
Write a function that dynamically allocates an array of integers. The function should accept an integer argument indicating the number of elements to allocate. The function should return a pointer to the array.
2. Test Scores #1
Write a program that dynamically allocaates an array large enough to hold a user-defined number of test scores. Once all the scores are entered, the array should be passed to a function that sorts them in ascending order. Another function should be called that calculates the average score. The program should display the sorted list of scores and averages with appropriate headings. Use pointer notation rather than array notation whenever possible.
Imput Validation: Do not accept negative numbers for test scores.
3. Drop Lowest Score
Modify Problem 2 above so the lowest test score is dropped. This score should not be included in the calculation of the average.
#include <iostream>
#include <iomanip>
using namespace std;
//Function prototypes
void arrSelectSort(int *[], int);
void showArray(int [], int);
void showArrPtr(int *[], int);
int main()
{
double *TestScores, //To dynamically allocate an array
total = 0.0, //Accumulator
average; //To hold average test scores
int numTest, //To hold number of test scores
count; //Counter variable
//Get the number of test scores you wish to average and put in order
cout << "How many test scores do you wish ";
cout << "to enter? ";
cin >> numTest;
//Dynamically allocate an array large enough to hold that many scores
TestScores = new double[numTest];
//Get the test scores
cout << "Enter the test scores below.\n";
for (count = 0; count < numTest; count++)
{
cout << "Test Score " << (count + 1) << ": ";
cin >> TestScores[count];
}
//Calculate the total test scores
for (count = 0; count < numTest; count++)
{
total += TestScores[count];
}
//Calculate the average test scores
average = total / numTest;
//Dsiplay the results
cout << fixed << showpoint << setprecision(2);
cout << "The average of all the test score is " << average << endl;
//Free dynamically allocated memory
delete [] TestScores;
TestScores = 0; //make TestScores point to null
//An array of pointers to int
int *arrPtrTestScores[count];
//Each element of arrPtr is a pointer to int. Make each
//element point to an element in the donations array
for (int count = 0; count < TestScores[count]; count++)
arrPtr[count] = &TestScores[count];
//Sort the elements of the array of pointers
arrSelectSort(arrPtr, TestScores[count];
//Display the Test Scores in ascending order
cout << "The test scores, sorted in ascending order, are: \n";
showArrPtr(arrPtr, TestScores[count]);
return 0;
}
//This function performs an ascending order selection sort
void arrSelectSort(int *arr[], int size)
{
int startScan, minIndex;
int *minElem;
for (startScan = 0; startScan < (size - 1); startScan++)
{
minIndex = startScan;
minElem = arr[startScan];
for(int index = startScan + 1; index < size; index++)
{
if (*(arr[index]) < *minElem)
{
minElem = arr[index];
minIndex = index;
}
}
arr[minIndex] = arr[startScan];
arr[startScan] = minElem;
}
}
system("pause");
return 0;
}
MOD EDIT: Please
Thanks, gabehabe

Start a new topic
Add Reply




MultiQuote

| 


