The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

Hi,

I am working on below challenge

http://codingbat.com/prob/p136585

I wrote my code as below

I am failing few tests.

I am not clear on below

Return the "centered" average of an array of ints, which we'll say is the mean average of the values, except ignoring the largest and smallest values in the array. If there are multiple copies of the smallest value, ignore just one copy, and likewise for the largest value. Use int division to produce the final average. You may assume that the array is length 3 or more.

centeredAverage([1, 2, 3, 4, 100]) → 3

centeredAverage([1, 1, 5, 5, 10, 8, 7]) → 5//how it is 5 sum of 1 plus 5 plus 5 plus 8 plus 7 is 26 devided by 5 right?

centeredAverage([-10, -4, -2, -4, -2, 0]) → -3//how it is -3

How to improve my design, approach, code? please advise

I am working on below challenge

http://codingbat.com/prob/p136585

I wrote my code as below

```
public int centeredAverage(int[] nums) {
int large=0;
int small=0;
for(int n:nums){
large= Math.max(large, n);
//large=n;
}
for(int n:nums){
small= Math.min(large, n);
// small=n;
}
return (large-small);
}
```

I am failing few tests.

I am not clear on below

Return the "centered" average of an array of ints, which we'll say is the mean average of the values, except ignoring the largest and smallest values in the array. If there are multiple copies of the smallest value, ignore just one copy, and likewise for the largest value. Use int division to produce the final average. You may assume that the array is length 3 or more.

centeredAverage([1, 2, 3, 4, 100]) → 3

centeredAverage([1, 1, 5, 5, 10, 8, 7]) → 5//how it is 5 sum of 1 plus 5 plus 5 plus 8 plus 7 is 26 devided by 5 right?

centeredAverage([-10, -4, -2, -4, -2, 0]) → -3//how it is -3

How to improve my design, approach, code? please advise

to find the result I would sum the nums subtract the min and the max of it then divide (int) by the number of items of the array -2 (array length)

[-10, -4, -2, -4, -2, 0] becomes (-4 - 2 - 4 - 2)/4 = -12/4 = -3

and

[1, 1, 5, 5, 10, 8, 7] becomes (1+5+5+7+8)/5 but as integers 26(int)/5(int) = 5(int)

Regards

That's exactly what I said in the comment before yours.

@guidii9,

here's the code:

```
public int centeredAverage(int[] nums) {
int large=Integer.MIN_VALUE;
int small=Integer.MAX_VALUE;
int sum=0;
for(int n:nums){
large = Math.max(large, n);
small = Math.min(small, n);
sum += n;
}
return (sum-large-small)/(nums.length-2);
}
```

This is not how ExEx is supposed to work.

Previous week I refrained from posting full code. Another "expert" did. (based on the hints I gave)

I filed a request for attention.

That was rejected since the author answered "No" to the question if it was home work.

The poster of the full code got the majority of the points.

Is that how EE is supposed to work?

This time I posted the full code (knowing this is not home work) and I got a attention for request filed against me.

Is that how EE is supposed to work?

I look forward to the decision that will be taken...

None of these questions are worth much, and the points we get are not worth the aggravation.

I got a bundle of points from gudii9 last month, and I would give them all back if he would just grow up.

I'm looking forward to some resolution as well.

And the list of aggravated experts is growing:

https://www.experts-exchange.com/questions/28960861/sum28-challenge.html#a41738792

```
public int centeredAverage(int[] nums) {
int large=Integer.MIN_VALUE;
int small=Integer.MAX_VALUE;
int sum=0;
for(int n:nums){
large = Math.max(large, n);
small = Math.min(small, n);
sum += n;
}
return (sum-large-small)/(nums.length-2);
}
```

Your approach was this (once again, badly indented) code:

```
public int centeredAverage(int[] nums) {
int large=0;
int small=0;
for(int n:nums){
large= Math.max(large, n);
//large=n;
}
for(int n:nums){
small= Math.min(large, n);
// small=n;
}
return (large-small);
}
```

Which is absolutely not similar.Why do you just repeat my code in your last comment?

Why did Rgonzo1971 got points for just repeating me?

@gudii9, I guess this was my last post on one of your questions...

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.

Returning large - small is not what is asked for.

You should make the sum of all values, then subtract large from it, then subtract small from it, then divide by the length of the array minus 2.

That's the value to return.