gpt4 book ai didi

java - 我的java程序无法正常运行我希望它将几个数字输入到一个数组中,然后按从低到高的顺序将其放入另一个数组中

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

我想用java编写一个程序,它接受用户输入的几个数字并将它们按从最高到最低的顺序显示在屏幕上但它不起作用,我不知道为什么。

提前致谢注意(这是我第一次在这里发布任何内容)

public class project {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] arr1 = new int[5];
int arr2[] = new int[5];
System.out.println("enter 5 numbers");

for (int i=0; i<=4; i++){
int Uinput = input.nextInt();
arr1[i] = Uinput;
}

for(int b = 0; b <= 4; b++){
for (int a = 0; a <=100;a++){
for(int j = 0; j <=4; j++){
if ( a== arr1[j]){
arr2[b]=arr1[j];
}
}
}
}

System.out.println(arr2 [0]);
System.out.println(arr2 [1]);
System.out.println(arr2 [2]);
System.out.println(arr2 [3]);
System.out.println(arr2 [4]);
}
}

最佳答案

循环的问题在于,即使在 arr2 中设置了元素后,您仍在继续进行比较。这就是为什么它们最终都成为最高数字。您只想设置每个元素一次。您可以尝试在每个 for 循环中添加中断,但更简单的解决方案是;

int b = 0;
while(b < 5) {
for (int a = 0; a <=100;a++){
for(int j = 0; j <=4; j++){
if (a == arr1[j]){
arr2[b]=arr1[j];
b++;
}
}
}
}

通过每次设置元素时递增 b,可以确保每个元素仅设置一次。

这就是说,KevinO 是正确的,并且还有其他更好的方法对数字进行排序(例如,您当前的代码无法处理大于 100 的数字)。我建议查看链接

关于java - 我的java程序无法正常运行我希望它将几个数字输入到一个数组中,然后按从低到高的顺序将其放入另一个数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56583762/

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