gpt4 book ai didi

java - 关于保存和打印数组中的不同数字

转载 作者:行者123 更新时间:2023-12-02 03:50:54 26 4
gpt4 key购买 nike

在你帮助我之前,这是一项家庭作业,我已经完成了大部分工作,但有一件事我无法弄清楚,0 根本没有被检测到。这意味着如果我在数组中输入 0-9 ,它会告诉我只有 9 个不同的数字,而实际上应该有 10 个,它会打印出除 0 之外的所有数字。任何人都可以看到这个问题,请向我解释一下,因为我需要理解它。

package javaproject.pkg2;
import java.util.Scanner;
public class JavaProject2 {


public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] numArray = new int[10];
int d = 0;
System.out.println("Enter Ten Numbers: ");
for(int i = 0; i < numArray.length; i++){
int num = input.nextInt();
if(inArray(numArray,num,numArray.length)){
numArray[i] = num;
d++;

}

}
System.out.println("The number of distinct numbers is " + d);
System.out.print("The distinct numbers are: ");
for(int i = 0; i < d; i++){
System.out.print(numArray[i] + " ");
}


}
public static boolean inArray(int[] array, int searchval, int numvals){
for (int i =0; i < numvals; i++){
if (searchval == array[i]) return false;
}
return true;
}

}

最佳答案

您可以使用集合来标识不同的值:

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Set<Integer> distinctNumbers = new LinkedHashSet<>();

System.out.println("Enter ten Numbers: ");

for (int i = 0; i < 10; i++) {
int number = input.nextInt();
distinctNumbers.add(number);
}
System.out.println("The number of distinct numbers is " + distinctNumbers.size());
System.out.print("The distinct numbers are: ");

for (Integer number : distinctNumbers){
System.out.print(number + " ");
}

}

如果某个值已存在于集合中,则无法再次添加。数组并不是最适合您的问题,因为它们必须使用固定大小进行初始化,并且您不知道用户将通知多少个不同的值。

关于java - 关于保存和打印数组中的不同数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35878057/

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