# A Little Help

• 09-26-2001
Dante42
A Little Help
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
}
• 09-26-2001
Dang
I just compiled it and got:

warning C4244: 'return' : conversion from 'int' to 'float', possible loss of data

That is the return from the median function. You divide into an int then return it. But the function says it should be returning a float.
• 09-27-2001
Brown Drake
You're also dividing zero by 2 when index equals 0 (index = count/2). I don't think that's correct.
• 09-27-2001
nvoigt
I don't know what you'd like to do, but your median functions
seems to be totally off. I can see at least one fatal error and