关于我的Java程序代码的问题,该代码获取用户输入数字并输出最小和最大数字

时间:2018-11-02 01:16:32

标签: java arrays input

我对编程非常陌生,所以如果听起来很无聊,请原谅我。我启动了该程序,该程序根据我放入数组中的预设数字来计算最小和最大数字。在运行程序后创建程序,我意识到我需要用户输入数字。我试图获得相同的结果。我添加了一些代码,以允许用户输入数字,但是不适用于其余代码。是否可以通过已有的计算方法来识别用户输入,还是需要从头开始?我希望这是有道理的。

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)

2 个答案:

答案 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);
    }
}