我正在尝试创建一个程序,要求用户输入20个双精度值。然后程序将添加所有输入的总和并计算平均值。然后我需要显示小于5.00的和,平均值以及大于计算平均值的值。到目前为止,我能够做到这一点。但是,我们还被要求按降序显示所有元素。我们介绍了泡泡分类,但我无法弄清楚在当前代码中放置它的位置和方式,因为它会影响其他结果。我们只允许使用BufferedReader。
这是我到目前为止的代码:
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 :(得分:1)
你可能希望在关闭最后一个if语句后的'main'方法中将BubbleSort algorythm放在最后,这样无论它对数组做什么改变都不会干扰程序的其余部分。
或者你可以创建一个数组的副本来处理,这样无论你将algorythm放在方法的哪个地方,主数组都不会受到影响,但我不建议在这种情况下这样做。
答案 1 :(得分:0)
我在这里看不到任何发生的事情。所有发生的事情都是通过数组循环并打印到std out。
在Price类中创建一个新方法调用bubbleSort,并将读取的数组传入此方法。这里有一个简单的实现https://en.wikipedia.org/wiki/Bubble_sort#Implementation冒泡排序是一种就地排序,因此原始数组将被修改。