JavaRush
Акция
Университет
Java FullStack
Python FullStack
new
Web FullStack
new
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема
Вопрос
  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Все вопросы
JavaRush/Помощь по Java задачам/"Убедись, что программа работает правильно, если N = 1."....
Nadya
10 уровень
  • 13.04.2020
  • 326просмотров
  • 2комментариев

"Убедись, что программа работает правильно, если N = 1.". Работает и с "=1". Не могу понять: в чем ошибка?

Вопрос по задаче Задача по алгоритмам Ӏ Java Syntax: 5 уровень, 12 лекция
Java Syntax,  5 уровень,  12 лекция
Решен


Написать программу, которая:
1. считывает с консоли число N, которое должно быть больше 0
2. потом считывает N чисел с консоли
3. выводит на экран максимальное из введенных N чисел.

Требования:
  • Программа должна считывать числа с клавиатуры.
  • Программа должна выводить число на экран.
  • В классе должен быть метод public static void main.
  • Нельзя добавлять новые методы в класс Solution.
  • Программа должна выводить на экран максимальное из введенных N чисел.
  • Программа не должна ничего выводить на экран, если N меньше либо равно 0.
package com.javarush.task.task05.task0532; /* Задача по алгоритмам */ import java.io.BufferedReader; import java.io.InputStreamReader; import java.sql.Array; import java.util.ArrayList; import java.util.Arrays; public class Solution { public static void main(String[] args) throws Exception { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); int maximum = Integer.MIN_VALUE; while (true) { String a = reader.readLine(); int n = Integer.parseInt(a); if ((n > 0) && (n !=1)){ int[] list = new int[n]; for (int i = 0; i < n; i++) { int m = Integer.parseInt(reader.readLine()); list[i] = m; } Arrays.sort(list); maximum = list[list.length - 1]; System.out.println(maximum);} else if (n==1){ maximum = Integer.parseInt(reader.readLine()); System.out.println(maximum); } else break; } }}
0
Комментарии (2)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Антон
Уровень 35
14 апреля 2020, 07:56
1) лучше использовать for, где i < N. 2) N стоит найти до начало цикла
0
Павел Безумный учёный Expert
13 апреля 2020, 19:27
При вводе 1 исполнение переходит к блоку, else if (n==1) { }, но после выполнения кода этого блока начинается следующая итерация бесконечного цикла, и считывание повторяется. Иными словами, нужно попросту избавиться от внешнего цикла while.
0
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush