2016-06-02 6 views
-1

사용자에게 20 개의 double 값을 입력하도록 요청하는 프로그램을 작성하려고합니다. 프로그램은 모든 입력의 합계를 더하고 평균을 계산할 것입니다. 그렇다면 합계, 평균, 5.00 미만의 값 및 계산 된 평균보다 큰 값을 표시해야합니다. 지금까지, 나는 그것을 할 수 있었다. 그러나 모든 요소를 ​​내림차순으로 표시하라는 요청을 받았습니다. 우리는 버블 정렬을하기 위해 도입되었지만 다른 결과에 영향을 미치기 때문에 현재 코드에 배치 할 위치와 방법을 파악할 수 없습니다. 우리는 BufferedReader를 위해서만 사용할 수 있습니다. Java에서 버블 정렬 알고리즘을 어디에서 어떻게 배치 할 수 있습니까?

내가 지금까지 가지고 그 코드 :

import java.io.*; 
public class Prices { 
public static void main(String[]args)throws IOException{ 

    BufferedReader br = new BufferedReader(new InputStreamReader (System.in)); 
    double [] price = new double [5]; 
    double sum = 0, ave = 0, temp; 

    System.out.print("Enter a value that has a decimal point: "); 

    for(int i=0; i<price.length;i++) 
//loop for accepting values for the array, adding values and getting the ave of the values 
    { 

     price[i] = Double.parseDouble(br.readLine());//holds the values of the input 

     sum += price[i];//adds all the input 
     ave = sum/5;//divides the computed sum by array size 
    } 
    // for printing the total sum & ave 
    System.out.println("The sum is = "+sum); 
    System.out.println("The average is = "+ave); 

    for(int i=0; i<price.length;i++){//loop for displaying values<5.00 and values>computed ave.  
    if (price[i]<5.00) 
    { 
     System.out.println("Values less than 5.00: "+ price[i]); 
    } 
    if (price[i]>ave) 
    { 
     System.out.println("Values greater than average: "+ price[i]); 
    } 
    } 
} 
} 
+0

배열의 모든 유효한 값을 입력 한 후에 정렬하십시오. 전의. system.out.println (sum is = ...) 코드 줄 바로 위 –

답변

1
당신은 그래서 지난 경우 문을 폐쇄 한 후 '기본'방법, 마지막에 당신의 거품 정렬의 algorythm을 배치 할 수 있습니다

어떤 변경하면 프로그램의 나머지 부분을 간섭하지 않을 것입니다.

또는 배열에 복사본을 만들면 배열에 복사본을 만들 수 있으므로 메서드에서 algorythm을 어디에 배치해도 주 배열에 영향을주지 않지만이 경우에는 사용하지 않는 것이 좋습니다.

0

여기에는 어떤 종류의 일도 발생하지 않습니다. 일어나는 모든 일은 배열을 반복하고 std로 인쇄하는 것입니다.

Price 클래스에서 새로운 메소드 호출 bubbleSort를 작성하고이 메소드로 읽은 배열을 전달하십시오. 간단한 구현은 여기 https://en.wikipedia.org/wiki/Bubble_sort#Implementation 버블 정렬은 내부 정렬이므로 원래 배열이 수정됩니다.

관련 문제