【发布时间】:2020-09-02 23:51:43
【问题描述】:
目标是创建一个大小为 100 的数组,让用户输入一堆正数,然后在输入 -1 时退出(或者我猜是填满 100 个位置)。之后,打印出读入的输入数量、平均值和最大值。我最初用一个较小的数组测试我的代码以获得平均值,现在意识到 array.length 不是我想要的,因为我将它切换到 100 并且不填满 100 个插槽。我的问题是,如何计算输入到数组中的输入量,而不仅仅是数组的总长度?
import java.util.*;
class Array{
public static void main(String [] args){
Scanner scan = new Scanner(System.in);
int[] array = new int[100];
System.out.println("Enter your number: ");
for(int i = 0; i < 100; i++){
int entry = scan.nextInt();
if(entry == -1){
System.out.println("Goodbye.");
i--;
break;
}else if(entry < -1){
System.out.println("Invalid.");
i--;
}else{
array[i] = entry;
}
}
//prints amount of elements inside array
//System.out.println("There are " + countArray(array) + " numbers in this array.");
//prints average
System.out.println("The average is: " + findAverage(array));
//prints highest val
System.out.println("The highest value is: " + findHigh(array));
}
//public static int countArray(int[] array)
//need help here and then fixing the issue in the average method
public static double findAverage(int [] array){
double sum = 0;
for(int i = 0; i < array.length; i++){
sum += array[i];
}
double average = (sum/array.length);
return average;
}
public static int findHigh(int[]array){
int max = array[0];
for(int i = 1; i < array.length; i++){
if (array[i] > max){
max = array[i];
}
}
return max;
}
}
【问题讨论】:
-
为什么不直接调整数组的大小呢?然后,您可以使用现有的方法来查找所需的属性。
标签: java arrays for-loop if-statement