• ,

level05.lesson12.bonus03

Сервер не принимает, на локалке все работает, в чем может быть причина?

import java.io.*;

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

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        int maximum = 0;

        int iNum = Integer.parseInt(reader.readLine());
        if (iNum > 0){
            for (int i = 0; i < iNum; i++){
                int iMax = Integer.parseInt(reader.readLine());
                if (iMax > maximum){
                    maximum = iMax;
                }
            }

        }else {
            return;
        }




        System.out.println(maximum);
    }
}

18 комментариев

toha134
legionld
Ни по одной, из ссылок, не нашел ответа.
toha134
Открываем первую же ссылку и читаем

legionld
При N < 0 произойдет завершение
if (iNum > 0){
            for (int i = 0; i < iNum; i++){
                int iMax = Integer.parseInt(reader.readLine());
                if (iMax > maximum){
                    maximum = iMax;
                }
            }

        }else {
            return;
        }

… или я не правильно понимаю return?
Пробовал перед выводом в maximum передавать число, но всеровно не работает. М.б. не так делал?..
toha134
Какое отношение N имеет к максимуму?
legionld
Спасибо! Разобрался не правильно проводил инициализацию первого значения. Решил.
Dmitresso
  • Dmitresso
  • 0
  • Комментарий отредактирован 2015-10-09 19:31:29 пользователем Dmitresso
При вводе однозначного N ловлю Exception in thread «main» java.lang.NumberFormatException: For input string: "", при вводе двузначного вхожу в бесконечный цикл. Совершенно не понимаю в чем дело. Намекните недвусмысленно где зашквар)
public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        int maximum;
        int[] list;
        int n;

        n = reader.read();

        if (n > 0) {
            list = new int[n];

            for (int i = 0; i < list.length; i++) {
                list[i] = Integer.parseInt(reader.readLine());
            }

            maximum = list[0];

            for (int i = 0; i < list.length; i++) {
                if (maximum < list[i]) {
                    maximum = list[i];
                }
            }
            System.out.println(maximum);

        } else {
            System.exit(0);
        }
    }
legionld
  • legionld
  • 0
  • Комментарий отредактирован 2015-10-10 09:23:41 пользователем legionld
n = reader.read(); — Это строка. Вы строку пытаетесь запихнуть в инт.
Dmitresso
И в самом деле. Спасибо)
nostalji
Может мне кто-нибудь подскажет что не так — в IntelliJ все работает, а тестирование программа не проходит…

public class Solution
{
public static void main(String[] args) throws Exception
{
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int maximum = 0;
//напишите тут ваш код
String m = reader.readLine();
int n = Integer.parseInt(m);
if (n > 0)
{
int i = 0;
int k = 0;
while (i < n)
{
String h = reader.readLine();
int f = Integer.parseInt(h);
if (f > k)
maximum = f;
else
maximum = k;
k = f;
i++;
}
System.out.println(maximum);
}
}
}
blacky
Look at the comment above.
1
-10
cepera
Для проверки введи только отрицательные числа. Думаю, по результату сам сможешь понять, где ошибка ))
blacky
Если вводить несколько отрицательных чисел, то у него всё ок.
cepera
согласен, недоглядел. Сам алгоритм поиска максимума некорректен
GOLD
  • GOLD
  • 0
Подскажите что не так, в среде все работает но не принимает
public class Solution
{
public static void main(String[] args) throws Exception
{
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int x = Integer.parseInt(reader.readLine());
while (x > 0)
{

int maximum = Integer.parseInt(reader.readLine());
x--;
for (int i = 0; i < x; i++)
{
int k = Integer.parseInt(reader.readLine());
if (k > maximum)
{
maximum = k;
}
}
System.out.println(maximum);
}
}
}
Henadz_Kuryliuk
подскажите, что не так
public class Solution
{
    public static void main(String[] args) throws Exception
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        int maximum = Integer.parseInt(reader.readLine());



        int n = Integer.parseInt(reader.readLine());
        if (n <= 0) {
            while (n <= 0) {
                /*System.out.println("Введите число больше 0");*/
                n = Integer.parseInt(reader.readLine());
            }
            for (int i = 0; i < n; i++) {
                int a = Integer.parseInt(reader.readLine());
                if (maximum < a) {
                    maximum = a;
                }
            }


        } else {
            for (int i = 0; i < n; i++) {
                int a = Integer.parseInt(reader.readLine());
                if (maximum < a) {
                    maximum = a;
                }
            }
        }


        System.out.println(maximum);
    }
}
Sparks
Вот тут int i = 0; i < iNum; i++ больше или равно iNum иначе как он выведет условие
потом вводит N чисел с консоли
я полагаю что тут надо i < iNum меньше или равно!
------------------------------------------------------------------------------------
AndreyBes
Т.к ты считываешь на одно число больше чем надо из буфера, то цикл будет до n-1. И не пойму зачем тебе второй цикл for. тут все намного проще. if (n>0){ for (int i = 0; i < n-1; i++) и в этом цикле, ты сравниваешь все числа с maximum, которому ты присвоил первое введенное число, оно и есть на данный момент максимальное(не важно, положительные или отрицательные, работает со всеми)
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.