powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка в цикле
3 сообщений из 3, страница 1 из 1
Ошибка в цикле
    #39098815
oxygene_w
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Не могу понять почему не срабатывает последний цикл. Т.е. первое максимальное значение пропускает условие и в итоге на консоль выводится два одинаковых значения.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
public class Started_11 {
    public static void main (String[] args){

        int[] mas = new int[10];
        for (int i = 0; i < 10; i++){
            mas[i] = (int) (Math.round(Math.random() * 100));
            System.out.print(mas[i] + " ");

        }
        System.out.println();

        //Найти второе по величине max значение в массиве. 

        int max = mas[0];
        for (int am = 0; am < 10; am++) {
            if (mas[am] > max){
                max = mas[am];
            }
        }

                int max2 = 0;
                if (max == mas[0]){
                    max2 = mas[1];
                } else {max2 = mas[0];}

                        for (int am2 = 0; am2 < 10; am2++){
                            if ((max2 != max) && (mas[am2] > max2)){
                                    max2 = mas[am2];
                            }
        }
        System.out.println();
        System.out.println("Максимальное значение массива: " + max);
        System.out.println("Второе максимальное значение массива: " + max2);


    }
}
...
Рейтинг: 0 / 0
Ошибка в цикле
    #39099060
output
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oxygene_w, потому что в условии
Код: java
1.
if ((max2 != max) && (mas[am2] > max2)) {



max2 еще не равен max, правильнее будет так mas[am2] != max

ну и можно так

Код: java
1.
2.
3.
4.
5.
Arrays.sort(mas);
int max = mas[mas.length - 1];
int max2 = mas[mas.length - 2];
System.out.println(max);
System.out.println(max2);
...
Рейтинг: 0 / 0
Ошибка в цикле
    #39099783
oxygene_w
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо.

Со вторым способом еще не сталкивался (Arrays.sort(mas);), буду изучать.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка в цикле
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]