当前正在尝试输出从键盘输入的25个数字的最小值和最大值,尽管我在Scanner类中无法输入上述数字。我不断收到错误消息,因为无法将Int []转换为Int。
这是问题:
(MinMax.java)从键盘读取25个整数,并将它们存储在 数组。在数组中找到最大值和最小值,然后显示 它们显示在屏幕上。
这是我当前的代码:
import java.util.Scanner;
import java.util.Arrays;
public class MinMax{
public static void main (String args[]){
Scanner sc = new Scanner(System.in);
System.out.println("Please enter 25 numbers.");
int[] numbers = sc.nextInt();
System.out.println("Minimum Value = " + getMinValue(numbers));
System.out.println("Maximum Value = " + getMaxValue(numbers));
}
public static int getMaxValue(int[] numbers) {
int maxValue = numbers[0];
for(int i=1;i<numbers.length;i++){
if(numbers[i] > maxValue){
maxValue = numbers[i];
}
}
return maxValue;
}
//Find minimum (lowest) value in array using loop
public static int getMinValue(int[] numbers){
int minValue = numbers[0];
for(int i=1;i<numbers.length;i++){
if(numbers[i] < minValue){
minValue = numbers[i];
}
}
return minValue;
}
}
答案 0 :(得分:2)
您不能这样做:
int[] numbers = sc.nextInt();
这是因为sc.nextInt()
返回的是int
,而不是int
的数组。
相反,您需要创建一个读取25个整数的循环:
int[] numbers = new int[25];
for(int i = 0; i < 25; i++) {
numbers[i] = sc.nextInt();
}
答案 1 :(得分:0)
问题是您的主要职责。 只需这样做:
public static void main (String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("Please enter 25 numbers.");
int[] numbers = new int[25];
for (int i = 0; i < 25; i++) {
System.out.print("Number " + (i+1) + ": ");
numbers[i] = sc.nextInt();
}
System.out.println("Minimum Value = " + getMinValue(numbers));
System.out.println("Maximum Value = " + getMaxValue(numbers));
}