Hi Experts!
I need to know if this program that I have made is correct according to the instructions given to me.
I want to know if I did something incorrectly or misunderstood the instructions.
Instructions:
Write a complete C++ program that will let a user input 8 integer values into an array. After entering the values display the following statistics: The third element in the array The average of all the numbers The difference between the maximum and the minimum numbers in the array.
First of all, I should note that I'm not getting the difference between the max and min numbers in the array. Why?
Program:
#include <iostream>
#include <iomanip>
using namespace std;
void readem(int * & number, int &quant)
{
quant = 8;
number = new int[quant];
for(int i=0; i<quant; i++)
{
cout << "\nEnter the value for number " << i+1 << "? ";
cin >> number[i];
}
return;
}
int sum(const int array[], int num)
{
int total=0;
for(int i=0; i < num; i++)
total += array[i];
return total;
}
void sortArray(int array[], int elems)
{
int temp, diff;
bool swap;
do
{
swap = false;
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 = true;
}
}
} while (swap);
cout << "\nThe third element is " << array[2];
diff = (array[8] - array[0]);
cout << "\nThe difference between the max and min numbers is: "<< diff;
}
int main()
{
int * number;
int num = 0;
int total;
readem(number, num);
total = sum(number, num);
sortArray(number, num);
cout << "\nAverage = " << float(total)/num << endl;
delete[] number;
return 0;
}
You dont have to sort the array to get max and min ... a simple loop would do
int max = INT_MIN;
int min = INT_MAX;
for ( i=0; i<arraylength; i++)
{
if ( array[i] > max)
max = array[i];
if (array[i] < min )
min = array[i];
}
Cheers!
sunnycoder