Hey Everybody I am a student at a University in St. Louis and was woundering if someone coudl take a look at this program and tell me what is wrong. The program ask you to enter a number which becomes the size of the array. You then enter that many numbers. The program sorts and averages the numbers and is suppossed to find the median number. It all works except the median function. I have pasted a copy of my program if someone has some advise would really appreciate it. Thanks
Chris
#include<iostream.h>
#include<iomanip.h>
float sortarray(float array[], int elems); //Decleares sort function
float median(float *a, int count); //Declares Median Function
float average(float[], int scores); //Decleares average function
void main(void)
{
float *test; //Holds amount of each test scores (array)
int scores; //Holds number of test scores
cout << "How many test scores do you wish to enter: " << endl;
cin >> scores; //Enters test scores
test = new float[scores];
if (test == NULL) //Tests for memeorey allocation
{
cout << "Error allocating memory!\n";
return;
}
else
{
cout << "Memory Allocated!" << endl;
cout << "The beginning address is: " << &test << endl; //Shows beginning address of test
}
cout << "Enter the test scores below.\n";
for (int count = 0; count < scores; count++)
{
cout << "Test " << (count +1) << ": ";
cin >> test[count];
}
cout.precision(2);
cout.setf(ios::fixed | ios::showpoint);
cout << "This Program sorts the scores and drops the lowest!" <<endl;
cout << "Here are your sorted test scores in numerical order: " << endl;
sortarray(test, scores); //Calls function to sort test scores
cout << endl;
cout << "This Program also finds the median score using all scores entered!" <<endl;
cout << "The Median number is: " << median(test, scores) << endl;
cout << "Average Test Scores: " << average(test, scores) << endl;
//Calls function to average all test scores
delete [] test;
}
float sortarray(float array[], int elems) //Sorts arrays
{
int swap;
float temp;
do
{
swap = 0;
for (int count = 0; count < (elems - 1); count++)
{
if (array[count] > array[count +1])
{
temp = array[count];
array[count] = array[count +1];
array[count + 1] = temp;
swap = 1;
}
}
}while (swap != 0);
for (int count = 1; count < elems; count++) //Drops Lowest Score
cout << array[count] << " ";
return array[count]; //Returns sorted array.
}
float average(float test[], int scores) //Calculates average
{
float total = 0;
for (int count = 1; count < scores; count++)
{
total += test[count];
}
float a = total / (count - 1);
return a; //Returns average with a value of 'a'
}
float median(float a[], int count) //Finds Median Value
{
int index;
if (count == 0)
{
index = count / 2;
return index; //Returns Median Value of odd number arrays
}
else
index = count % 2;
return ((a[count - 1] + a[count])/2); //Returns Median Value of even number arrays
}