Так вот, я получаю полтора часа, и это очень раздражает. Я не уверен, в чем проблема, потому что я перепроверял несколько раз мой код, я искал и искал другие способы, или если я сделал что-то неправильно, и я все еще ничего не вижу.Второе наименьшее число в массиве - неверный вывод
Это отрывок из моего кода:
// 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 + ".");
массив [я] является входным сигналом от пользователя. Вначале программа попросит вас ввести количество номеров, которые вы хотите ввести, а затем вы начнете вводить их. Я положил в пять, и я ввожу пять чисел, но мое второе наименьшее число совпадает с моим самым маленьким числом. Иногда я получаю правильный ответ. Любые идеи?
EDIT: Работает с помощью пользователя3591111. Благодаря!
Я не 'не вижу каких-либо выражений 'if', сравнивающих число' minimum' с 'secondnum (second min)' – 3kings