Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.55/29: Рейтинг темы: голосов - 29, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 27.01.2018
Сообщений: 15
1

Ввод неизвестного количества чисел с консоли

04.02.2018, 18:52. Показов 5689. Ответов 11
Метки нет (Все метки)

Есть простенькая программа, которая должна ввести все числа с консоли и вывести их корни, но цикл, в котором происходит записывание чисел в список заканчивает программу. То есть если я введу в консоль 3 числа, цикл запишет в массив 3 числа, но на этом программа завершится и просто закончит свое выполнение.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.ArrayList;
import java.util.Scanner;
 
public class Task1000 {
    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);
      
 
        ArrayList<Integer> arr = new ArrayList<>();
         while(sc.hasNextInt()){
             arr.add(sc.nextInt());
         }
 
        for(int i = arr.size()-1; i >= 0; i--){
 
            System.out.printf("%.2f" , (double)Math.sqrt(arr.get(i)));
        }
 
    }
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.02.2018, 18:52
Ответы с готовыми решениями:

Ввод с консоли не известного заранее количества чисел
Предложите алгоритм ввода таким образом чисел. Для объяснения, что надо напишу какие варианты...

Запись с консоли в массив неизвестного заранее количества элементов
Друзья, всем привет! Парюсь над задачкой: Ввести значения с консоли и определить максимальное...

Ввод заранее неизвестного количества чисел массива с клавиатуры
Как написать код, чтобы пользователь вводил числа в массив количество элементов которого не известно

Ввод неизвестного количества int
Здравствуйте, при изучении c++ и соответственно решении задач, возникла проблема, что нужно вводить...

11
Йуный падаван
Эксперт PythonЭксперт Java
8811 / 5213 / 1793
Регистрация: 21.10.2017
Сообщений: 14,023
04.02.2018, 19:03 2
Alexandr_apk, будет гонять, пока не введешь 0 или отрицательное
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.util.ArrayList;
import java.util.Scanner;
 
public class Main {
 
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        ArrayList<Integer> arr = new ArrayList<>();
        int x;
        while (true) {
            x = sc.nextInt();
            if (x <= 0) break;
            arr.add(x);
        }
        for (int i = arr.size() - 1; i >= 0; i--) {
            System.out.printf("%.2f", (double) Math.sqrt(arr.get(i)));
        }
    }
}
0
0 / 0 / 0
Регистрация: 27.01.2018
Сообщений: 15
04.02.2018, 19:05  [ТС] 3
А никак нельзя без этого? Сам по себе цикл никак не закончиться, если не вводить эти числа?
0
Йуный падаван
Эксперт PythonЭксперт Java
8811 / 5213 / 1793
Регистрация: 21.10.2017
Сообщений: 14,023
04.02.2018, 19:09 4
Alexandr_apk, ну как вот цикл может кончиться сам по себе???
Цикл - это повтор с условием. Если без условия - он бесконечен.

Добавлено через 28 секунд

Не по теме:

телепаты в отпуске...



Добавлено через 1 минуту
Не нравится так, можно ограничить количество вводимых чисел
0
0 / 0 / 0
Регистрация: 27.01.2018
Сообщений: 15
04.02.2018, 19:10  [ТС] 5
Ну условием есть то, что на консоли есть еще число , но когда числа заканчиваются, программа заканчивается. Если мне нужно ввести все числа из консоли и они могут быть равны любому числу , как быть? И кроме чисел ничего не вводиться. Это что, невозможно?
0
Йуный падаван
Эксперт PythonЭксперт Java
8811 / 5213 / 1793
Регистрация: 21.10.2017
Сообщений: 14,023
04.02.2018, 19:13 6
Тогда в консоли вводишь числа через пробел, после нажатия enter прога тебе их все вносит в лист и заканчивает работу.
0
0 / 0 / 0
Регистрация: 27.01.2018
Сообщений: 15
04.02.2018, 19:26  [ТС] 7
В том то и дела, что не заканчивает. Я так и делаю, но все же ничего потом не происходит

Добавлено через 13 минут
И не понятно что сделать.
0
Эксперт Java
3276 / 2730 / 831
Регистрация: 05.07.2013
Сообщений: 13,038
04.02.2018, 19:30 8
Цитата Сообщение от Alexandr_apk Посмотреть сообщение
И не понятно что сделать.
по-человечески объяснить, чего тебе надо, например
0
Йуный падаван
Эксперт PythonЭксперт Java
8811 / 5213 / 1793
Регистрация: 21.10.2017
Сообщений: 14,023
04.02.2018, 19:43 9
Alexandr_apk, ну, как вариант, считать целиком строку и разбить ее на числа в массив...

Добавлено через 9 минут
Alexandr_apk, извращенство, конечно, но...
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import java.util.ArrayList;
import java.util.Scanner;
 
public class Main {
 
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        ArrayList<Integer> arr = new ArrayList<>();
        String s = sc.nextLine();
        sc = new Scanner(s);
        while (sc.hasNextInt()){
            arr.add(sc.nextInt());
        }
        for (int i = arr.size() - 1; i >= 0; i--) {
            System.out.printf("%.2f ", (double) Math.sqrt(arr.get(i)));
        }
    }
}
0
0 / 0 / 0
Регистрация: 27.01.2018
Сообщений: 15
04.02.2018, 19:55  [ТС] 10
Может и извращенство , но это работает, в отличие от первого варианта, так что спасибо большое за помощь.

Добавлено через 7 минут
А если данные будут не в одной строке, а в нескольких?
0
Йуный падаван
Эксперт PythonЭксперт Java
8811 / 5213 / 1793
Регистрация: 21.10.2017
Сообщений: 14,023
04.02.2018, 20:00 11
Не прокатит. Здесь сканер читает строку, а потом из нее числа.
0
0 / 0 / 0
Регистрация: 27.01.2018
Сообщений: 15
04.02.2018, 20:30  [ТС] 12
Понятно, а можно все - таки как то реализовать этот вариант(числа на разных строках)?
Вообще вот задача
Исходные данные
Входной поток содержит набор целых чисел Ai (0 ≤ Ai ≤ 1018), отделённых друг от друга произвольным количеством пробелов и переводов строк. Размер входного потока не превышает 256 КБ.
Результат
Для каждого числа Ai, начиная с последнего и заканчивая первым, в отдельной строке вывести его квадратный корень не менее чем с четырьмя знаками после десятичной точки.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.02.2018, 20:30

Ввод неизвестного количества строк
Доброго времени суток! Мне требуется ввести неизвестное количество строк. Пример: Пробовал...

Ввод заранее неизвестного количества строк
Знающие люди помогите! Необходимо ввести с консоли определнное количество строк, заранее не...

Считывание неизвестного количества чисел
Доброго времени суток, извините что отвлеккаю.Помогите начинающему.Имеется задача...Вводится ряд...

Среднее из неизвестного количества чисел(Почему не правильно считает?)
Подскажите почему программа считает не правильно, если в последовательности есть отрицательные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.