TIL/Java
[Java] 중간고사: 문제 해결 능력 기르기_평균값 계산기
야리니
2022. 1. 5. 15:07
728x90
반응형
평균값 계산기
파라미터로 정수 배열 intArray를 받고 배열의 모든 값의 평균을 리턴해주는 메소드 computeAverage를 쓰세요.
리턴값의 자료형은 double입니다.
4.3333333
3.75
4.0
3.0
해설
합 구하기
일단 반복문을 이용해서 배열의 모든 값을 더해야한다.
while문 이용
double computeAverage(int[] intArray) {
int sum = 0;
int i = 0;
while (i < intArray.length) {
sum += intArray[i];
i++;
}
}
기본 for문 이용
double computeAverage(int[] intArray) {
int sum = 0;
for (int i = 0; i < intArray.length; i++) {
sum += intArray[i];
}
}
for each 이용
double computeAverage(int[] intArray) {
int sum = 0;
for (int num : intArray) {
sum += num;
}
}
평균 구하기
이제 sum을 길이만큼 나누면 된다. 그런데 단순히 sum / intArray.length를 하면 안 된다. 만약, sum이 13이고 intArray.length가 3이면 4.333... 대신 4가 결과값으로 나온다. 정수형과 정수형 간의 연산은 정수형이 나오기 때문입니다. 이 문제를 해결하기 위해서 double로 타입 캐스팅을 해주자!
return (double) sum / intArray.length;
모범 답안
public class AverageFinder {
double computeAverage(int[] intArray) {
int sum = 0;
for (int num : intArray) {
sum += num;
}
return (double) sum / intArray.length;
}
public static void main(String[] args) {
AverageFinder finder = new AverageFinder();
// 테스트 1
int[] testArray1 = {3, 7, 3};
System.out.println(finder.computeAverage(testArray1));
// 테스트 2
int[] testArray2 = {1, 3, 4, 7};
System.out.println(finder.computeAverage(testArray2));
// 테스트 3
int[] testArray3 = {4};
System.out.println(finder.computeAverage(testArray3));
// 테스트 4
int[] testArray4 = {1, 2, 3, 4, 5};
System.out.println(finder.computeAverage(testArray4));
}
}
4.333333333333333
3.75
4.0
3.0
본인 작성 코드
728x90
반응형