【问题标题】:IndexOutOfBound Java exception cant analyze error [duplicate]IndexOutOfBound Java异常无法分析错误[重复]
【发布时间】:2021-03-04 11:38:54
【问题描述】:

我知道当我们在索引中插入一个大于数组大小的元素时会出现此错误,但我仍然无法弄清楚为什么会出现这样的问题我已经很好地分析了代码但不能找出问题。

/*package whatever //do not write package name here */

import java.util.*;
import java.lang.*;
import java.io.*;

class Test {
    public static void main (String[] args) {
        //code
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter T value");        
        int t = sc.nextInt();
        
        while(t > 0){
            System.out.println("Enter Array Size");
            int n = sc.nextInt();
            
            int a[] = new int[n];
            
            
            System.out.println("Enter Array Element");
            for(int i = 0;i<n; i++){
                a[i] = sc.nextInt();
            }
            
            for(int i = 0; i<n; i++){
                
            int min = i;
            
            for(int j = i; j<n;j++){
                if(a[j] < a[min]){
                    min = a[j];
                }
            }
            
            int temp = a[i];
            a[i] = a[min];
            a[min] = temp;
                
            }
            
            for(int el : a){
                System.out.print(el + " ");
            }
            
           t--; 
        }
    }
}

【问题讨论】:

  • 运行此代码时没有出现异常。你输入什么来获得这个例外?
  • 我不知道为什么它只在输入从 1 到 10 的整数时给我这样的错误

标签: java arrays sorting exception


【解决方案1】:

尝试将元素大小加 1 到 n。如果您说 10 个元素,则数组将包含 0-9 个元素。如果选择第 10 项,则比为数组设置的大小多 1

【讨论】:

  • 对不起,我不明白
  • 尝试 Int a[] = new int[n+1];
  • 谢谢,兄弟,它正在工作,但它分配了一个额外的垃圾空间来做什么
  • 问题是提示,当程序说“输入数组大小”并输入 10 时,人们想通过输入索引 10 来访问第 10 个元素。然而 Java 索引 10 个数组元素 0 到9. 向程序用户解释输入数组元素小于最大值 1 或解释可用元素是 0 到 n -1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-09
  • 1970-01-01
  • 1970-01-01
  • 2013-07-31
相关资源
最近更新 更多