有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我对编程非常陌生,所以如果这听起来很无知,请原谅我。我启动了这个程序,根据我在数组中输入的预设数字计算出最小和最大的数字。在创建程序并运行之后,我意识到我需要用户输入数字。我正试图获得同样的结果。我添加了一些代码,让我能够获得用户输入的数字,但它不适用于代码的其余部分。有没有办法让它通过我已有的计算来识别用户输入,或者我需要从头开始?我希望这是有道理的

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) 个答案

  1. # 1 楼答案

    numbers = new int[9];
    

    这是错误的,您需要存储10int,所以它必须new int[10]

    改变它,你的代码就可以工作了

  2. # 2 楼答案

    正如我所看到的,问题是你没有完整地阅读用户输入,并且已经开始计算

    我已经为你更新了程序。它从用户那里接收所有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);
        }
    }