We help IT Professionals succeed at work.

We've partnered with Certified Experts, Carl Webster and Richard Faulkner, to bring you two Citrix podcasts. Learn about 2020 trends and get answers to your biggest Citrix questions!Listen Now

x

# Need to know if this program using an array is correct.

on
Medium Priority
188 Views
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];

}

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;

total = sum(number, num);

sortArray(number, num);

cout << "\nAverage = " << float(total)/num << endl;

delete[] number;

return 0;
}

Comment
Watch Question

## View Solution Only

CERTIFIED EXPERT
Top Expert 2006

Commented:
Hi manz2,

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

Commented:
Ok cool! Thanks for that, it will help.

As far as the way I have it right now, why am I getting weird numbers when it displays the difference of max and min.

diff = (array[8] - array[0]);
cout << "\nThe difference between the max and min numbers is: "<< diff;

is this not correctly coded?

CERTIFIED EXPERT
Top Expert 2006
Commented:
Valid indices are from 0 to 7 ... array[8] is invalid .. Have not verified your sorting routine yet.

Not the solution you were looking for? Getting a personalized solution is easy.

Commented:
I just realized there was not array[8] only 7 like you said. Thanks again for your help and sample tip!
##### Thanks for using Experts Exchange.

• View three pieces of content (articles, solutions, posts, and videos)
• Ask the experts questions (counted toward content limit)
• Customize your dashboard and profile