Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/170: Рейтинг темы: голосов - 170, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 10.05.2015
Сообщений: 21
1

Ввести через консоль несколько переменных через пробел в одной строке

10.05.2015, 02:06. Показов 35057. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет. Я только учусь программировать, так что вопрос должен быть довольно несложным.

Мне нужно ввести через консоль несколько переменных через пробел в одной строке. Затем требуется сравнить их с ранее введенной переменной, посчитать сколько раз условие сравнения выполняются и вывести количество удачных исходов.

С вводом переменных я вроде как разобрался, а вот как переменные из массива сравнить с другой переменной не знаю. Для ввода переменных через консоль я использовал что-то вроде этого:

Java
1
2
3
4
int []sl = new int[1000];
for (int i = 0; i < sl.length; i++) {
sl[i] = input.nextInt();
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.05.2015, 02:06
Ответы с готовыми решениями:

После каждого слова вставьте слово «Бум!» и выведите список на консоль в одну строку через пробел
Получается все, кроме последнего условия. хэлп%-) Задачка: Считывать с консоли слова, вводимые...

Как записывать числа через пробел, через scanner
Здравствуйте, подскажите пожалуйста как записывать числа через пробел, через scanner.

Как ввести несколько переменных через пробел (std::cin)?
Как ввести несколько переменных через пробел?

Как считать с консоли сразу несколько чисел через пробел в одной строке?
Есть два вопроса. 1)Как например считать число с консоли. Я пишу int a = Console.Read();...

13
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7219 / 4718 / 1226
Регистрация: 30.03.2015
Сообщений: 13,442
Записей в блоге: 29
10.05.2015, 12:48 2
Лучший ответ Сообщение было отмечено BearStrikesBack как решение

Решение

и как результат? у тебя же по условию несколько переменных в одной строке через пробел, то есть типа 12 22 32 11 56. Тут надо читать Стринг строку и раскидывать ее на инт переменные, а потом уже сравнивать:
Java
1
2
3
4
5
6
7
BufferedReader br=new BufferedReader (new InputStreamReader(System.in)); 
        String vvod=br.readLine();
        String[] tok=vvod.split(" ");
        for (int i=0; i<tok.length;i++) { // цикл перебора всех введенных переменных
            int x=Integer.parseInt(tok[i]);
            // тут сравниваем х с нужной переменной и делаем что нам нужно
        }
ну и будь готов к ошибкам если будут не цифры введены
1
0 / 0 / 0
Регистрация: 10.05.2015
Сообщений: 21
10.05.2015, 18:57  [ТС] 3
Спасибо. Понятно. Есть еще два небольших вопроса.

1) Можно ли как-то автоматически посчитать количество переменных, которые были введены? То есть при вводе 12 22 32 11 56, какой-то другой переменной будет присвоено значение 6 и т.д.
2) У меня есть какая-то введенная переменная. Мне нужно проверить условие "больше или равно 2Х". С наименьшего введенного в массив значения (могут идти как угодно, не ранжированы) начинается проверка условия, до удовлетворения условия или окончания массива. При удовлетворении условия, дальше переменные массива сравниваются с переменной, которая удовлетворила условию.

Пример. Предположим у меня есть переменая Х = 6. Массив переменных из: 12 22 32 11 56. Сначала берется значение 11, которое не удовлетворяет условию. Затем 12 - удовлетворяет. Теперь идет сравнение не с 6, а с 12, то есть первой наименьшей переменной из массива, которая удовлетворяет условию с Х. 22 - нет. 32 - да. 56 - нет. В итоге выводится количество исходов, когда есть успех. В данном случае - 2.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7219 / 4718 / 1226
Регистрация: 30.03.2015
Сообщений: 13,442
Записей в блоге: 29
10.05.2015, 20:01 4
1) можно
Java
1
int count=tok.length;
0
0 / 0 / 0
Регистрация: 10.05.2015
Сообщений: 21
12.05.2015, 23:35  [ТС] 5
0) Ок, я дошел до следующего шага. Я выяснил примерно, как посчитать количество успехов.

Java
1
2
3
4
5
6
7
8
9
10
11
Arrays.sort(x);
 
int matches = 0;
for(int i = 0; i < x.length; i++)
{
if(x[i] >= 2*y)
{
matches++;
y = x[i];
}
System.out.println(matches);
В итоге выводится массив строк с количество успехов для каждого(i-го) теста:
0
1
1
2
2

Мне же нужно вывести только максимальное значение. Как это сделать? Есть две проблемы:
1) С помощью данного кода, данные, которые вводит пользователь через пробел, преобразуются в массив строк (Strings[]).

Java
1
2
3
4
5
6
7
BufferedReader br=new BufferedReader (new InputStreamReader(System.in)); 
        String vvod=br.readLine();
        String[] tok=vvod.split(" ");
        for (int i=0; i<tok.length;i++) { // цикл перебора всех введенных переменных
            int x = Integer.parseInt(tok[i]);
            // тут сравниваем х с нужной переменной и делаем что нам нужно
        }
Попытки использовать это в шаге 0 проваливаются, т.к. я не могу сравнить/использовать переменные типа int, String, String[] одновременно. Может кто-то с этим помочь? Нужен переход от шага 1 к шагу 0. То есть вместо X (в шаге 0) должны использоваться переменные из введенной пользователем строки, которые разделены пробелом. Я пробовал операторы Integer.parseInt для строк/приведения переменных к одному виду, но почему-то не получается.
2) Как в шаге 0, вывести только максимальное значение. Я нашел отдельные способы для строки int переменных, и отдельно для String, но т.к. у меня массив строк, то Eclipse почему-то ругается.
0
Pablito
13.05.2015, 08:32
  #6

Не по теме:

где же Sanan с готовым решением? :jokingly:

0
0 / 0 / 0
Регистрация: 10.05.2015
Сообщений: 21
13.05.2015, 17:43  [ТС] 7
Ок. Ряд вопросов отпал. Остается только последний - 2)Как в шаге 0, вывести только максимальное значение? Я нашел отдельные способы для строки int переменных, и отдельно для String, но т.к. у меня массив строк, то Eclipse почему-то ругается.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7219 / 4718 / 1226
Регистрация: 30.03.2015
Сообщений: 13,442
Записей в блоге: 29
13.05.2015, 17:52 8
так как я не могу понять все эти твои шаги -просто выложи код, на который ругаются
0
0 / 0 / 0
Регистрация: 10.05.2015
Сообщений: 21
13.05.2015, 17:55  [ТС] 9
Java
1
2
3
4
5
6
7
8
9
10
11
Arrays.sort(x);
 
int matches = 0;
for(int i = 0; i < x.length; i++)
{
if(x[i] >= 2*y)
{
matches++;
y = x[i];
}
System.out.println(matches);
Это последняя часть кода. Если выводить matches сразу, то система выводит значение matches для каждого x:
0
1
1
2
2

Мне нужно чтобы система выводила только максимальное значение, в данном случае - 2.

Преобразовать matches в
Java
1
int[]
или что-то похожее для вычисления макс. значение не получается.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7219 / 4718 / 1226
Регистрация: 30.03.2015
Сообщений: 13,442
Записей в блоге: 29
13.05.2015, 18:45 10
как я не люблю когда стыдливо какие то кусочки кода показывают и ждут помощи
Я вот, к примеру вижу, что у цикла for фигурная скобка открывается, но не вижу где она закрывается. Можно весь цикл узреть?
Цитата Сообщение от BearStrikesBack Посмотреть сообщение
Преобразовать matches в int[]
а как ты одно значение в массив значений преобразуешь, да и зачем?
0
0 / 0 / 0
Регистрация: 10.05.2015
Сообщений: 21
13.05.2015, 18:57  [ТС] 11
Я только учусь кодить (причем исключительно для себя), так что прошу прощения (Зачеркнуто два раза ) )

Да, вы правы. Прочитал комментарий и понял, что вывод у меня идет в цикле перебора, поэтому и выводятся все значения matches, а не максимальное. Спасибо)))
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7219 / 4718 / 1226
Регистрация: 30.03.2015
Сообщений: 13,442
Записей в блоге: 29
13.05.2015, 19:01 12
рад, что сам заметил) в будущем не стесняйся выкладывать код поподробнее
0
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 1
02.10.2015, 08:26 13
Добрый день, друзья! У меня похожая проблема, только вопрос немного иной.
Можно ли каким-то образом ограничить кол-во чисел вводимый одной строкой через пробел?
Например ввожу 1 2 3 4 5 6 а дальше ввод уже невозможен.
0
237 / 236 / 72
Регистрация: 02.07.2013
Сообщений: 881
02.10.2015, 09:07 14
Цитата Сообщение от Welemir1 Посмотреть сообщение
1
int count=tok.length;
можно простой проверкой
если count > 6 - выдать сообщение "некорректный ввод"
1
02.10.2015, 09:07
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.10.2015, 09:07
Помогаю со студенческими работами здесь

Как ввести в консоль три числа через пробел?
Напишите программу, которая, используя метод Console.ReadLine(), вводит строку, содержащую три...

Можно ли в С# ввести два разных числа для двух переменных через пробел?
В общем, есть задача, в которой есть данные на входе. Есть код ввода переменных: for (i = 0; i...

Как ввести сразу несколько переменных через пробелы?
Например, в С++ это было так: cin &gt;&gt; a &gt;&gt; b &gt;&gt; с; А в Python так: num1,num2,num3 = input().split(&quot;...

Как ввести несколько переменных из одной строки
Как ввести несколько переменных из одной строки, не зная количество переменных? Кроме варианта...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Rust или Go? А может C++?
hw_wired 28.01.2025
С каждой новой технологией или методологией появляются новые языки программирования, призванные решать конкретные задачи либо улучшать аспекты производительности и безопасности. Среди множества. . .
Fortran и WinAPI: как создать приложение с графическим интерфейсом
hw_wired 28.01.2025
Fortran — это один из старейших высокоуровневых языков программирования, широко используемый в науке и инженерии уже несколько десятилетий. Его название происходит от "Formula Translation" (перевод. . .
Списки в Haskell
hw_wired 28.01.2025
Haskell является функциональным языком программирования, который отличается лаконичностью синтаксиса и мощными абстракциями. Важным концептом в Haskell являются списки — упорядоченные коллекции. . .
Функции высшего порядка в Haskell
hw_wired 28.01.2025
Haskell – это современный функциональный язык программирования, который получил широкое распространение благодаря своей выразительности и мощным абстракциям. Одной из ключевых особенностей Haskell. . .
Как в цикле обойти все поля объекта в JavaScript
bytestream 28.01.2025
Объекты в JavaScript представляют собой фундаментальные структуры данных, которые позволяют хранить и организовывать связанную информацию в виде пар ключ-значение. Каждый объект можно представить как. . .
Как выбрать строки в DataFrame по значению столбца в Pandas
bytestream 28.01.2025
В области анализа данных библиотека Pandas стала незаменимым инструментом для работы с табличными данными в Python. Эта мощная библиотека предоставляет множество функций для эффективной обработки и. . .
Как сделать перенос строки в Bash
bytestream 28.01.2025
При работе с командной оболочкой Bash разработчики часто сталкиваются с необходимостью форматирования текстового вывода, где ключевую роль играет правильное управление переносами строк. Умение. . .
Поиск подстроки в строке с помощью Bash
bytestream 28.01.2025
Поиск подстроки в строке является одной из важных задач в программировании и обработке текстов. Применение такого поиска можно найти в самых разных областях, от анализа данных до разработки. . .
[golang] 169. Majority Element
alhaos 28.01.2025
Тут надо вернуть "мажористый" элемент который встречается в слайсе больше чем в половине случаев. По условиям задачи во входных данных такой элемент обязан присутствовать. / / . . .
Когда лучше использовать LinkedList вместо ArrayList в Java
bytestream 28.01.2025
При разработке Java-приложений выбор правильной структуры данных играет ключевую роль в обеспечении эффективности и производительности программы. ArrayList и LinkedList являются двумя. . .
Какой ответ HTTP лучше использовать: 403 Forbidden или 401 Unauthorized, когда недостаточно прав
bytestream 28.01.2025
В современной веб-разработке правильная обработка ошибок и точное информирование клиентов о статусе их запросов играют критическую роль в создании надежных и безопасных приложений. Особое внимание. . .
Как получить список всех файлов коммита в Git
bytestream 28.01.2025
Система контроля версий Git представляет собой мощный инструмент для управления изменениями в программном коде и других файлах проекта. В основе работы Git лежит концепция коммитов - снимков. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru