gpt4 book ai didi

java - 数组中的重复项无效输入

转载 作者:行者123 更新时间:2023-12-01 20:03:59 25 4
gpt4 key购买 nike

我尝试编写一个简单的代码来检查数组中是否有重复的数字/小于数组大小的数字和大于数组大小的数字。(例如对于一个大小为7的数组,数组中的数字应在1-7之间且不能重复,否则系统将打印无效错误)例如,当我输入大小为 1 的数组并输入数字 2 时,我收到以下错误消息:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1 at sumn.main(sumn.java:24)

这是代码本身,对如何解决这个问题有什么想法吗?

public class sumn {
public static boolean Duplicates(int arr[]) {
int a, b;
boolean flag = true;
for (a=0;a<arr.length-1;a++) {
for (b=a+1;b<arr.length;b++) {
if (arr[b]==arr[a]) {
return false;
}
}
}
return flag;
}

public static void main(String[] args) {
int N = MyConsole.readInt("Enter the size of the array:");
int arr[] = new int [N];
int i, j;
boolean flag = true;
for (i=0;i<arr.length;i++) {
arr[i]= MyConsole.readInt("Enter a number between 1 to ");
}
for (j=0;j<arr.length;j++) {
if (Duplicates(arr)==false || N<arr[i] || arr[i]<=0)
flag = false;
if (flag == false) {
System.out.println("Invalid input");
}
}
}


}

最佳答案

问题出在这一行

if (Duplicates(arr)==false || N<arr[i] || arr[i]<=0) 

成功

if (Duplicates(arr)==false || N<arr[j] || arr[j]<=0) 

i替换为j

关于java - 数组中的重复项无效输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47689899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com