我对编程非常陌生,所以如果听起来很无聊,请原谅我。我启动了该程序,该程序根据我放入数组中的预设数字来计算最小和最大数字。在运行程序后创建程序,我意识到我需要用户输入数字。我试图获得相同的结果。我添加了一些代码,以允许用户输入数字,但是不适用于其余代码。是否可以通过已有的计算方法来识别用户输入,还是需要从头开始?我希望这是有道理的。
package smallestlargestnumber;
import java.util.Arrays;
import java.util.Scanner;
/**
*
* @author robert.huckestein
*/
public class SmallestLargestNumber {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int[] numbers;
Scanner sc = new Scanner (System.in);
numbers = new int[9];
System.out.println("Enter 10 different numbers.");
for (int j = 0; j <= 9; j++) {
numbers[j] = sc.nextInt();
int largest = numbers[0];
int smallest = numbers[0];
for(int i = 1; i<numbers.length; i++){
if (numbers[i] > largest){
largest = numbers[i];
}
else if(numbers[i] < smallest){
smallest = numbers[i];
}
}
System.out.println(" The numbers given are" +Arrays.toString(numbers));
System.out.println(" Largest number is " + largest);
System.out.println(" Smallest number is " + smallest);
}
}
}
//这是我的代码的编译程序。
run:
Enter 10 different numbers.
1
2
3
4
5
6
7
8
9
1
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 9
at smallestlargestnumber.SmallestLargestNumber.main(SmallestLargestNumber.java:31)
C:\Users\robert.huckestein\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 17 seconds)
答案 0 :(得分:0)
numbers = new int[9];
这是错误的,您需要存储10 int
,因此必须new int[10]
更改它,您的代码应该可以运行
答案 1 :(得分:0)
我看到的问题是您尚未完全阅读用户输入并开始进行数学计算。
我已经为您更新了程序。它从用户处接收所有10个数字,然后才进行计算。
public static void main(String[] args) {
int[] numbers;
Scanner sc = new Scanner(System.in);
{
numbers = new int[10];
System.out.println("Enter 10 different numbers.");
// read user's input for all 10 numbers
for (int j = 0; j <= 9; j++) {
numbers[j] = sc.nextInt();
}
// do the calculations
int largest = numbers[0];
int smallest = numbers[0];
for (int i = 1; i < numbers.length; i++) {
if (numbers[i] > largest) {
largest = numbers[i];
} else if (numbers[i] < smallest) {
smallest = numbers[i];
}
}
System.out.println(" The numbers given are" + Arrays.toString(numbers));
System.out.println(" Largest number is " + largest);
System.out.println(" Smallest number is " + smallest);
}
}