게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
이런게 로직에러 인가요..??
게시물ID : programmer_1148짧은주소 복사하기
작성자 : 애널써커.
추천 : 0
조회수 : 411회
댓글수 : 3개
등록시간 : 2014/02/11 15:13:20
import java.util.Scanner;
import java.util.Arrays;


public class CodeVer2 {


public static void main(String[] args) 
{
Double num1, num2, num3, num4, num5, sum, avg;
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter the first number:");
num1 = keyboard.nextDouble();
System.out.println("Enter the seond number:");
num2 = keyboard.nextDouble();
System.out.println("Enter the third number:");
num3 = keyboard.nextDouble();
System.out.println("Enter the fourth number:");
num4 = keyboard.nextDouble();
System.out.println("Enter the fifth number:");
num5 = keyboard.nextDouble();
keyboard.close();
double[] num = new double[5]; // num 이란 이름의 배열이 5개의 변수로 만들어집니다.
num[0] = num1;
num[1] = num2;
num[2] = num3;
num[3] = num4;
num[4] = num5;
Arrays.sort(num);                     // 배열이 최소값->최대값으로 정렬됩니다.
double[] data = {num1, num2, num3, num4, num5}; //최빈값(제일 많이 input이 된 수) 을 찾기위해 데이터를 만듭                                                                                                                       니다.
int mode = 0;
int[] index = new int[99990];
int maximum = Integer.MIN_VALUE;
for (int i = 0; i < data.length; i++){
index[(int) data[i]]++;
}
for (int i = 0; i < index.length; i++){
if(maximum < index[i]){
maximum = (int) index[i];
mode = i;
}
}
sum = num[0] + num[1] + num[2] + num[3] + num[4];
avg = sum/5;
System.out.println(" ");
System.out.println("Sum:    " + sum);
System.out.println("Average:" + avg);
System.out.println("Maximum:" + num[4]);
System.out.println("Minimum:" + num[0]);
System.out.println("Median: " + num[2]);
System.out.println("Mode:   " + mode);
}
}




위 코드가 제가 짠 코드인데요...

최빈값 부분에서 로직에러가 생기네요.
1)          이렇게 색칠된 부분인데요.
     그 부분에 int 에서 가능한 최대값인 2의 32승 -1의 값을 넣으면
     메모리 부족 에러가 뜨면서 실행이 안됩니다.

2)  만약에 사용자가 넣은 값이 11,22,11,22,33 이렇게 5개의 수라면
     11과 22둘다 최빈값이 되어야하는데 11밖에 안 뜨네요.
     (1,2,3,4,5 를 넣었을 때 1,2,3,4,5 전부 한번씩 있기 때문에 최빈값은 1,2,3,4,5 인데 1이라고만 뜨구요)

초보라서 그런지 많이 서투네요...
혹시 괜찮은 해결방법이 없을까요?  
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호