【发布时间】:2018-05-30 23:09:49
【问题描述】:
嗨,在我的程序中,我想在数组中显示平均数、最大数、最小数和众数。到目前为止,只有我的平均工作量和我的最小值和最大值方法 = 我输入的第一个数字。例如,如果我说我想输入 3 个数字,我输入了 12、15 和 6。最小值和最大值都将输出 12,因为它是输入的第一个数字,这是错误的,所以请帮忙。这是我的代码。
int amount;
System.out.println(" Enter the amount of numbers you would like to enter: ");
amount = scan.nextInt();
int [] arr = new int [amount];
int outcome = 1;
for (int i = 0; i < arr.length; i++){
System.out.println("Enter a number 1 through 50");
outcome = scan.nextInt();
arr [i] = outcome;
}
System.out.println(" ");
System.out.println( " The average is" );
System.out.println(average(arr));
System.out.println(" ");
System.out.println( " The lowest value in the array is " );
System.out.println(min(arr));
System.out.println(" ");
System.out.println( " The largest value in the array is " );
System.out.println(max(arr));
System.out.println(" ");
}
public static double average ( int [] arr) {
double sum = 0;
int value = arr.length;
for ( int i = 0; i < arr.length; i++){
sum += arr [i];
}
sum = sum / value;
return sum;
}
public static int min (int [] arr) {
int shortest = 0;
int smallest = 100;
int length = arr.length;
for ( int i = 0; i < arr.length; i ++ ) {
if ( length < smallest)
shortest += arr[i];
smallest = arr.length;
}
return shortest;
}
public static int max (int [] arr) {
int largest = 0;
int biggest = 0;
int length = arr.length;
for ( int i = 0; i < arr.length; i ++ ) {
if ( length > largest)
biggest += arr[i];
largest = arr.length;
}
return biggest;
}
}
【问题讨论】:
-
我不需要平均值,我需要众数、最大值、最小值以及如何绘制直方图的建议。
-
smallest = arr[0];并在您的方法中执行biggest = arr[0];而不是使用 100 和 0。使用数组中的值而不是将其设置为数组中可能不存在的某个值。如果您的数组的大小为 1,那么该值将是您的最小值和最大值 :) -
还是不行