강의로 돌아가기
-

답은 잘 나오는데, 제출이 안됩니다.

실행 시 평균값은 잘 구해집니다.

그런데 제출을 하면 답이 아니라고 나옵니다.

어떤부분에서 수정할 것이 있는지 궁금합니다.

작성중인 코드―GetMean.java
1
2
3
4
5
6
7
8
9
10
11
12
public class GetMean {
  int sum=0;
  int avg=0;
    public int getMean(int[] array){

    for(int i=0; i<array.length; i++){
        sum+=array[i];
    }
    avg=sum/array.length;
        return avg;
    }
}
작성중인 코드―MainRunner.java
1
2
3
4
5
6
7
8
9
//아래는 실행을 위한 코드입니다. 수정하지 마세요.
public class MainRunner {
    public static void main(String[] args) {
        GetMean ex = new GetMean();

        int[] array = { 1,2,3,4,5 };
        System.out.println(ex.getMean(array));
    }
}
1 개의 답변
-

코드를

public class GetMean {

public int getMean(int[] array) {

int sum = 0;
int avg = 0;

for (int i = 0; i < array.length; i++) {
sum += array[i];
}
avg = sum / array.length;
return avg;
}
}

으로 수정하니 제출이 잘 됩니다 ...

int sum=0;
int avg=0; 을
public class GetMean{} 안에 넣었던걸
public int getMean(int[]array){}안에 넣으니 잘 돌아가는군요 ...

public class GetMean{}안에 넣어버리면
sum과 avg값이 0으로 재설정되어서 오류가 나는 것인가요??
만약 제가 생각했던 오류가 맞다면 왜 결과값은 올바른 평균값인 3이 출력 되는것인지 궁금합니다 !

  • 나웅태
    예를들어 해당함수가 2번이상 호출때 sum,avg가 함수밖에 선언된다면 두번째 이상부터 함수를 불러올때 0으로 초기화 되지 않기 때문이 아닐까요? 나웅태 2018.03.06 03:56
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.