scoresAverage challenge

Hi,

I am working on below challenge

http://codingbat.com/prob/p123837
I wrote my code as below
public int scoresAverage(int[] scores) {
  int result=0;
  int len=scores.length;
  int lenHalf=len/2;
  int sumEven=0;
    int sumOdd=0;
for(int i=0;i<lenHalf;i++){
    sumEven=(scores[i]+scores[i+1])/2;
    //result=sumeEven;
    //return result;
  }
  
  for(int i=lenHalf;i<len;i++){
    sumOdd=(scores[i]+scores[i+1])/2;
   // result=sumeOdd;
    //return result;
  }
  if(sumOdd>sumEven){
    return sumOdd;
  }
  else{
    return sumEven;
  }


}
return result;
  

}

}

Open in new window





I am not passing all tests with below error

Compile problems:


Error:      }
      ^
Syntax error on token "}", { expected after this token


How to improve my design, approach, code? please advise
LVL 7
gudii9Asked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Subrat (C++ windows/Linux)Software EngineerCommented:
move last return statement two line up and delete last two }} Nd check

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
d-glitchCommented:
Where is your pseudo code??
Subrat (C++ windows/Linux)Software EngineerCommented:
public int scoresAverage(int[] scores) {
  int result=0;
  int len=scores.length;
  int lenHalf=len/2;
  int sumEven=0;
    int sumOdd=0;
for(int i=0;i<lenHalf;i++){
    sumEven=(scores[i]+scores[i+1])/2;
    //result=sumeEven;
    //return result;
  }
  
  for(int i=lenHalf;i<len;i++){
    sumOdd=(scores[i]+scores[i+1])/2;
   // result=sumeOdd;
    //return result;
  }
  if(sumOdd>sumEven){
    return sumOdd;
  }
  else{
    return sumEven;
  }

    return result;

}

  

Open in new window

Your Guide to Achieving IT Business Success

The IT Service Excellence Tool Kit has best practices to keep your clients happy and business booming. Inside, you’ll find everything you need to increase client satisfaction and retention, become more competitive, and increase your overall success.

d-glitchCommented:
Not appropriate to post complete solutions to homework-type problems before the Asker has even responded to your hint.
gudii9Author Commented:
public int scoresAverage(int[] scores) {
  int result=0;
  int len=scores.length;
  int lenHalf=len/2;
  int sumEven=0;
    int sumOdd=0;
    if(len>2){
for(int i=0;i<lenHalf-1;i++){
    sumEven=(scores[i]+scores[i+1])/2;
    //result=sumeEven;
    //return result;
  }
  
  for(int i=lenHalf;i<len-1;i++){
    sumOdd=(scores[i]+scores[i+1])/2;
   // result=sumeOdd;
    //return result;
  }
  if(sumOdd>sumEven){
    result=sumOdd;
    return result;
  }
  else{
    result=sumEven;
    return result;
  }
}
else{
   if(scores[0]>scores[1]){
    result=scores[0];
    return result;
  }
  else{
    result=scores[1];
    return result;
  }
}

}

  

Open in new window



above passes all tests.
Any improvement, refinement, refactoring the code?

Psuedo Code:
1. loop through array
2. for arrays more than 2 elements find the average of left part and right part and return whichever greater
3. for array of 3 elements return the max out f both elements.
Subrat (C++ windows/Linux)Software EngineerCommented:
Keep only one return statement at end. it is bad practice to keep multiple return path from a function. Assign the result as per the requirement and finally return.
Subrat (C++ windows/Linux)Software EngineerCommented:
>>3. for array of 3 elements return the max out f both >>elements.

test case input 10, 20, 10
is the op that you r getting correct? what is expected?
gudii9Author Commented:
>>3. for array of 3 elements return the max out f both >>elements.


oops, i mean

>>3. for array of 2 elements return the max out f both >>elements.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Java

From novice to tech pro — start learning today.