package com.javarush.task.task05.task0532;
import java.io.BufferedReader;
import java.io.InputStreamReader;
/*
Задача по алгоритмам Ӏ Java Syntax: 5 уровень, 12 лекция
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(reader.readLine());
int maximum = Integer.parseInt(reader.readLine());
//напишите тут ваш код
if (n<=0){
return;
}
for (int i=0; i<n-1; i++){
int s = Integer.parseInt(reader.readLine());
if(s>maximum){
maximum = s;
}
}
System.out.println(maximum);
}
}
Дмитрий
7 уровень
Не проходит последний пункт.
Решен
Комментарии (6)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Дмитрий
31 мая 2022, 13:43
Переписал что сейчас не так кто подскажет?
0
Дмитрий
31 мая 2022, 13:43
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
// int n=3;
int maximum = 0;
int n = Integer.parseInt(reader.readLine());
//напишите тут ваш код
int a = Integer.parseInt(reader.readLine());
for (int i=0; i<n-1; i++){
int s = Integer.parseInt(reader.readLine());
if(a>s){
maximum = a;
}
else {
maximum =s;
}
System.out.println(maximum);
}
}
}
0
ГоффMaster
26 мая 2022, 16:52
Примерно так:
ты объявляешь переменную, потом у тебя цикл, в котором ты инициализируешь её, и потом у тебя идёт обращение к этой переменной (System.out.println(maximum);)
Компилятор, не вдаваясь в подробности, видит, что если цикл ни разу не выполнится, переменная останется непроинициализированной, что вызовет ошибку при обращении к ней.
Именно об этом он тебе и говорит, отказываясь компилировать.
0
Aleksey
26 мая 2022, 16:42
Почему n = 3? считывает с консоли число N, которое должно быть больше 0
Обращение к локальным переменным должно быть выполнено только после того, как они будут инициализированы;
Локальные переменные не имеют значений по умолчанию;
Проверка значений локальных переменных выполняется в момент компиляции.
Поэтому надо присвоить начальное значение для локальной переменной maximum.
0
Дмитрий
26 мая 2022, 19:31
Не понимаю. Я подумал что N это прозвольно выбраное число какое захочешь. А получается что N этопервое число в консоле? Сто значит "Обращение к локальным переменным......только после того как они будут иницилиализированны"?
0
Aleksey
27 мая 2022, 04:22
Да, N - это первое число, которое вы вводите с консоли.
Локальные - это те переменные которые объявлены внутри метода. Чтобы к ней обратиться надо задать ей начальное значение.Вот если бы переменная была статической и объявлена в классе, например:
то при загрузке класса, компилятор сам бы инициализировав ее значением 0.
0