У меня есть код, но не понимаю почему не работает. Находит без проблем наибольшее число и по этой логике хочу найти наименьшее, но программа находит не то. Также не могу понять, какая ошибка в нахождении суммы и количества чисел.
public static void main(String[] args) {
try{
Scanner file = new Scanner(new File("test.txt"));
int lar= file.nextInt();
int min = file.nextInt();
int count=0;
// поиск наибольшего числа
while (file.hasNextInt()){
int number=file.nextInt();
if (number>lar) {
lar=number;
}
System.out.print(number+" "); //отображение чисел
}
// поиск наименьшего числа
while(file.hasNextInt()){
int number =file.nextInt();
if (number<min) {
min=number;
}
}
// количество чисел
while(file.hasNext()){
count++;
}
// сумма чисел
int total=0;
int sum=0;
while(file.hasNextInt()){
sum = file.nextInt();
total= sum+total;}
file.close();
System.out.println();
System.out.println("Наибольшее число: " + lar);
System.out.println("Наименьшее число " + min);
System.out.println("Количество чисел: "+ count);
System.out.println("Сумма чисел: "+ total);
}catch(IOException e){
System.out.println(e.getMessage());}
Числа в текстовом файле следующие: 1231 123 21 321 2 32 3 23 2 232 -23 123123123
А компилятор выдает:
21 321 2 32 3 23 2 232 -23 123123123
Наибольшее число: 123123123
Наименьшее число 123
Количество чисел: 0
Сумма чисел: 0
Нужно включить логику и понять, что делает nextInt. А оно просто читает следующее число из файла. Когда же файл дочитан до конца, больше читать нечего, и все while, кроме первого, не срабатывают. Более того, максимум тоже ищется некорректно - пропускается второе число.
В общем, все действия нужно делать за один проход - прочитали число, обновили максимум, минимум, счетчик, и сумму.
int lar = - MaxInt;
int min = MaxInt;
int count = 0;
int sum = 0;
while (file.hasnextInt()) {
number = file.nextInt();
count++;
sum += number;
if (number > lar)
lar=number;
if (number < min)
min = number;
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Пытаюсь проверить заголовок передаваемый из FirebaseВыдает ошибку, видимо данные еще не успевают подгрузиться
Дело такое: при запуске time-managera пустой список в началеНужно туда вставить картинку, которая бы пропадала как только мы что-то добавили
Пытаюсь запустить сервер для сайта на Spring MVC + простой tcp-сервер для общения с удаленными устройствамиНикак не могу запустить tcp-сервер при...