I'm having a problem getting the number of integers greater than the average in my array to display. I keep getting "You have 1 number greater than the average when there are 5 that are greater. Pls help!!!
This is the code I've devolped so far:

``````#include <iostream>

using namespace std;

int main(){

const int SIZE = 10;
int myArr[SIZE];
double myAvg;
int myCount = 0;
cout<<"Give me 10 whole numbers: "<<endl;

for(int i = 0; i<SIZE; i++){
cin>>myArr[i];
}

myAvg = (myArr + myArr + myArr + myArr + myArr + myArr + myArr + myArr + myArr + myArr) / 10;
if(myAvg < myArr[SIZE]){

}

myCount++;
cout<<"You have "<<myCount<<" number(s) greater than the average"<<endl;

system("pause");
return 0;
}
``````

## Recommended Answers

I think you should use a for statement to loop through your myArr array, comparing each element to the calculated average.

## All 3 Replies

I think you should use a for statement to loop through your myArr array, comparing each element to the calculated average.

just sort your table and iterate over it to find index of the first greater and get the number from simple calculation: arraySize - firstGreaterIndex

You should do as gerard4143 says and use a loop to calculate your mean value. Even better, take than loop and put it in it's own function, something like:

``````double calculateMean( int* arr, int size );
``````

You should also be careful since your method of calculating the mean doesn't do what you want it to. The mean of a bunch of `int` values can be a non-`int` value (the mean of the series {1,2}, for example). You need to cast the value of the sum of the elements of your array to a `float` or `double` value. You can use the `static_cast` operator to do this:

``````double mean = static_cast< double >( 1 + 2 ) / 2;
``````

Finally, the reason that you keep getting the answer 1 is because the your `counter` variable is incremented outside the `if` statement on line 21. In fact, this statement is not correct either,since `myArr[ SIZE ]` isn't a valid element of `myArr`. You need another loop to go through all the elements of `myArr` and apply the check to see if they're greater than the mean.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of 1.21 million developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.