需要Java数组帮助使用scanner类输出平均值和排序方法



几个小时后,我在制作输出平均值的方法方面没有取得进展。我还需要做一个排序类。总的来说,任务需要。

开发方法:

  • 'main'方法打印数组
  • 对数组进行排序
  • 确定最高值
  • 确定最低值
  • 计算平均值(双倍)

import java.util.Scanner;
public class Arrayassignment {
public static void main(String[] args) {
   Scanner sin=new Scanner(System.in);
System.out.println("Enter an intiger for array size.");
int number= sin.nextInt();
int array[]=new int[number];
System.out.println("Array size " + number + " initiated.n");

System.out.println("Now enter the array intigers");
for (int i = 0; i < number; i++)
{  
    array[i]=sin.nextInt();
 }
System.out.println ("The highest number in the array is " + max (array) );
System.out.println ("The smallest number in the array is " + min (array) );
//System.out.println ("The average of the numbers in the array is " ;
}
public static int max ( int ... arg )
{
 if ( arg.length == 0) 
 { 
   System.out.println(" empty arguement list ")  ;
   return 0;
 }
 int largest = arg [0];
 for (int i = 1; i < arg.length; i++ )
 {
   if (arg [i] > largest)
       largest = arg[i];
 }
 return largest;
 }
 public static int min ( int ... arg )
 {
 if ( arg.length == 0) 
 { 
   System.out.println(" empty arguement list ")  ;
   return 0;
 }
 int smallest = arg [0];
 for (int i = 1; i < arg.length; i++ )
 {
   if (arg [i] < smallest)
       smallest = arg[i];
 }
 return smallest;
int sum = 0;
for (int d : arg ) sum += d;
double average = 1.0d * sum / arg .length;

这将帮助你找到平均。。。

要排序查找最小值和最大值,可以使用TreeSet集合类。如果您使用的是基元类型或包装类,那么在这种情况下不需要添加任何比较逻辑。否则,您需要实现comparator或类似方法。以下是最小和最大数据的TreeSet示例http://www.programcreek.com/2009/02/a-simple-treeset-example/。对于计算平均值,我建议您可以使用局部变量,每次向TreeSet添加数字时,您都可以更新平均值。例如,当您将新数字p添加到当前平均值v时,计算最新平均值为v=(v*size+p)/++size;

在Java 8+中,可以像一样使用IntStreamIntSummaryStatistics

int[] arr = { 3, 1, 2 };
IntSummaryStatistics stats = IntStream.of(arr).summaryStatistics();
System.out.printf("Min: %d, Max: %d, Average: %.2f%n", //
        stats.getMin(), stats.getMax(), stats.getAverage());
IntStream.of(arr).sorted().forEach(System.out::println);

这样计算平均值:

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

最新更新