gpt4 book ai didi

java - 数组中第二小的数字 - 输出不正确

转载 作者:太空宇宙 更新时间:2023-11-04 13:13:46 25 4
gpt4 key购买 nike

这个问题已经困扰我一个半小时了,而且越来越烦人了。我不确定问题是什么,因为我已经多次重新检查了我的代码,我已经用谷歌搜索并搜索了其他方法,或者如果我做错了什么,但我仍然没有看到任何东西。

这是我的代码的摘录:

    // MAX AND MIN NUMBER
int maxnum = array[0];
int minnum = array[0];
for (int i = 0; i < array.length; i++) {
if (array[i] > maxnum) {
maxnum = array[i];
} else if (array[i] < minnum) {
minnum = array[i];
}
}
System.out.println("Maximum number is " + maxnum + ", minimum is " + minnum + ".");
// --------------------------------------------------------------------------------
// SECOND SMALLEST NUMBER
int secondnum = array[0];
for (int i = 0; i < array.length; i++) {
if (array[i] == minnum) {
secondnum = minnum;
} else if (array[i] < minnum) {
secondnum = minnum;
minnum = array[i];
} else if (array[i] < secondnum) {
secondnum = array[i];
}

}
System.out.println("Second smallest number is " + secondnum + ".");

array[i] 是来自用户的输入。一开始,程序会要求您输入要输入的数字数量,然后您继续输入它们。我输入了五个,然后我输入了五个数字,但我的第二小数字与我的最小数字相同。有时我会得到正确的答案。有什么想法吗?

编辑:在 user3591111 的帮助下工作。谢谢!

最佳答案

在第一个 for 中,您可以从第二个 for 中的 i =1 开始尝试。

int secondnum = maxnum;
for (int i = 0; i < array.length; i++) {
if (array[i] != minnum && array[i] <secondnum )
secondnum = array[i];

}

如果您有重复的数字,这将不起作用,因为您的小数字可能等于您的第二个小数字,因此您需要存储小数字的位置,并在 if 中更改为 if ((array[i] != minnum || smallPos != i) && array[i] <secondnum )

关于java - 数组中第二小的数字 - 输出不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33715346/

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