Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 13.05.2020
Сообщений: 11

Добавить ввод цифр пользователем

18.05.2020, 09:49. Показов 665. Ответов 12

Студворк — интернет-сервис помощи студентам
Подскажите, как в этот код добавить ввод массива пользователем
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import java.util.*;
 
public class Main {
 
    static int n, k;
    static int[] a;
 
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("Введите n");
        n = in.nextInt();
        System.out.println("Введите k");
        k = in.nextInt();
        a = new int[k];
        p1(0,0);
    }
 
    static void p1(int pos, int maxUsed) {
        if (pos == k) {
            System.out.println(Arrays.toString(a));
        } else {
            for(int i = maxUsed+1; i <= n; i++) {
                a[pos] = i;
                p1(pos+1,i);
            }
        }
    }
 
}
Получается, здесь он заполняется при помощи строки a[pos] = i;. Но что нужно добавить, чтобы пользователь мог сам вводить элементы массива, комбинации из которого нужно перебрать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.05.2020, 09:49
Ответы с готовыми решениями:

Добавить ввод массива пользователем
В общем нужно сделать так, чтобы пользователь сам вводил массив, и программа работала с тем массивом, который задал пользователь, а не...

Добавить ввод данных пользователем и все!
Измените входные данные на ввод пользователем,так как у меня не работает, не правильно сделал. Вот сам код: #include...

Сортировка пузырьком, добавить ввод данных пользователем
задать пользовательский ввод чисел A def BubbleSort(A): for i in reversed(range(len(A) + 1)): flag = True ...

12
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
18.05.2020, 10:53
scanner nextInt нужно добавить, очевидно же
0
0 / 0 / 0
Регистрация: 13.05.2020
Сообщений: 11
19.05.2020, 12:27  [ТС]
Куда именно? Если прямо в a[pos] = i;, выходит ерунда.
0
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
19.05.2020, 12:37
Что делает рекурсивная функция p1 - загадка. Но явно не ввод массива.

Добавьте в функцию main цикл от 0 до k-1 и внутри прочитайте k значений с помощью scanner.nextInt()
0
 Аватар для Aviz__
2748 / 2056 / 508
Регистрация: 17.02.2014
Сообщений: 9,483
19.05.2020, 12:47
prostoludin, а так? https://www.cyberforum.ru/post14542998.html
0
0 / 0 / 0
Регистрация: 13.05.2020
Сообщений: 11
19.05.2020, 16:15  [ТС]
Код перебирает сочетание с повторением и без, взят отсюда Перебор Сочетания с повторением и без самостоятельно работает. Вводить массив я пробовал, после этого просто ничего не происходит.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package test;
import java.util.Arrays;
import static java.lang.System.out;
import java.util.Scanner;
 
public class test1 {
     
    static int n, k;
    static int[] a;
 
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("Введите n");
        n = in.nextInt();
        System.out.println("Введите k");
        k = in.nextInt();
        a = new int[k];
        System.out.println ("Введите элементы массива ");
        for (int i=0; i<=k-1; i++)
        {
            System.out.print ("Введите " +(i+1));
            System.out.print ("-й элемент ");
            a[i] = in.nextInt();
        }
        System.out.println("Без повторений:");
        p1(0,0);
    }
 
    static void p1(int pos, int maxUsed) {
        if (pos == k) {
            System.out.println(Arrays.toString(a));
        } else {
            for(int j = maxUsed+1; j <= n; j++) {
                p1(pos+1,j);
            }
        }
    }
}
0
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
19.05.2020, 16:53
Цитата Сообщение от prostoludin Посмотреть сообщение
после этого просто ничего не происходит.
А первые два числа (n и k) читает?
0
0 / 0 / 0
Регистрация: 13.05.2020
Сообщений: 11
19.05.2020, 17:17  [ТС]
Да, читает
0
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
19.05.2020, 17:35
прицепите скриншот консоли в точке "ничего не происходит"
0
0 / 0 / 0
Регистрация: 13.05.2020
Сообщений: 11
19.05.2020, 19:33  [ТС]
0
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
19.05.2020, 20:36
Так программа замирает все-таки на вашем таинственном методе p1(), а ввод массива пользователем выполнен. Как, собственно, и просили. Можете вставить после заполнения
Java
1
System.out.println(Arrays.toString(a));
чтобы в этом убедиться.
0
0 / 0 / 0
Регистрация: 13.05.2020
Сообщений: 11
20.05.2020, 07:51  [ТС]
Так дальше с этим массивом то ничего не происходит. Еще раз повторю - Код перебирает сочетание с повторением и без, самостоятельно работает.
0
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
20.05.2020, 09:21
prostoludin, обратитесь к собственному вопросу из самого первого сообщения. Поставленная проблема решена?

Если хотите задать новый вопрос уже по работе рекурсивной функции - лучший путь создать новую тему.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.05.2020, 09:21
Помогаю со студенческими работами здесь

Пирамидальная сортировка, добавить ввод размера массива пользователем
Есть программа для пирамидальной сортировки. Как сделать так чтобы пользователь сам вводил размерность массива? #include...

Быстрая сортировка (добавить ввод размера массива пользователем)
Есть программа для быстрой сортировки на C++. Как сделать так, чтобы пользователь сам вводил размерность массива? #include...

Добавить защиту от дурака (на ввод букв вместо цифр)
помогите, пожалуйста сделать защиту от дурака, чтобы если вместо ввода чисел будут введены буквы, программа выдавала сообщение о том, что...

Ограничение на ввод символов (разрешить ввод только цифр)
Всем доброго времени суток! Я начал изучать С++ и у меня возник такой вопрос: Как ограничить ввод символов (разрешить ввод только...

Ввод в CEdit только символов 'A'B'C'D'E'F' и цифр от 0 до 9 (ввод в HEX)
собственно такой вопросик. как сделать так, что бы программа ругалась на некорректный ввод данных без нажатия всяких кнопок проверок?...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru