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

Как заполнить многомерный массив интами в заданном диапазоне?

16.07.2018, 00:40. Показов 2632. Ответов 6

Студворк — интернет-сервис помощи студентам
В приведённом ниже коде генерится многомерный массив и заполняется псевдорандомными интами. Проблема в том, что нужно не просто заполнить массив, а заполнить его интами в диапазоне, заданном с консоли юзером - от 1 до k. Как это сделать в данном примере?

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
39
40
41
42
43
44
45
46
47
48
49
50
import java.text.ParseException;
import java.util.Random;
import java.util.Scanner;
import java.lang.Math;
 
public class Diapazon {
    public static void main(String[] args) throws ParseException {
 
        Scanner scan = new Scanner(System.in);
        Scanner scan2 = new Scanner(System.in);
 
        System.out.println("Enter an integer number - what dimension will the matrix be and press Enter:");
        int matrixSize = scan.nextInt(); // сюда мы пишем размер массива
 
        int[][] matrix2d = new int[matrixSize][matrixSize];
 
        System.out.println("Enter the maximum integer from 1 to k for the random number generator and press Enter:");
        int maximumNumber = scan2.nextInt(); // сюда мы пишем максимальное целочисленное число от 1 до k
        
        scan.close();
        scan2.close();
 
        
        fillMatrix(matrixSize, matrix2d);
        System.out.println();
        System.out.println("Your matrix is:");
        printMatrix(matrixSize, matrix2d);
        }
 
        
 
    public static void fillMatrix(int matrixSize, int[][] matrix2d) {
        Random random = new Random();
        for (int a = 0; a < matrixSize; a++) {
            for (int b = 0; b < matrix2d.length; b++) {
                matrix2d[a][b] = random.nextInt(100) + random.nextInt();
            }
        }
    }
 
    public static void printMatrix(int matrixSize, int[][] matrix2d) {
        for (int a = 0; a < matrixSize; a++) {
            for (int b = 0; b < matrix2d.length; b++) {
                System.out.print(matrix2d[a][b]);
                System.out.print(" ");
            }
            System.out.println();
        }
    }
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.07.2018, 00:40
Ответы с готовыми решениями:

Как заполнить массив числами в заданном диапазоне и посчитать сумму его элементов
Заполнить одномерный массив из 19 элементов в интервале от -19 до 43. Посчитать сумму элементов массива. Помогите пожалуйста решить..

Заполнить массив случайными числами в заданном диапазоне
Сгенерировать числа от -5 до 4

Заполнить массив квадратами натуральных чисел в заданном диапазоне
Напишите программу, которая заполняет массив квадратами натуральных чисел от 1 до N . Входные данные Входная строка содержит размер...

6
75 / 61 / 29
Регистрация: 20.04.2015
Сообщений: 415
16.07.2018, 04:47
Массив: Как именно заполнить шестимерный массив одним циклом?
1
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,687
Записей в блоге: 29
16.07.2018, 06:43
Цитата Сообщение от Berezhany Посмотреть сообщение
а заполнить его интами в диапазоне, заданном с консоли юзером - от 1 до k
random.nextInt(k)+1
1
 Аватар для Aviz__
2744 / 2053 / 507
Регистрация: 17.02.2014
Сообщений: 9,472
16.07.2018, 09:47
а так?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import java.util.Scanner;
 
public class RandomInBorders {
 
    private static int getRndNms(int lowBrd, int highBrd) {
        return lowBrd + (int)((highBrd - lowBrd) * Math.random());
    }
 
    public static void main(String[] args) {
        Scanner userInput = new Scanner(System.in);
        System.out.println("Введите границы интервала?");
        while (userInput.hasNext()) {
            int lBrd = userInput.nextInt();
            int hBrd = userInput.nextInt();
            for (int i = 0; i < 22; i++) {
                System.out.println(getRndNms(lBrd, hBrd));
            }
            System.out.println("\"Ctrl\" + D - выход!");
        }
    }
}
результат работы:
Кликните здесь для просмотра всего текста
Bash
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Введите границы интервала?
20
26
25
20
22
22
20
22
20
21
22
23
21
23
20
21
24
24
25
25
23
20
22
24
"Ctrl" + D - выход!
-10
0
-6
-3
-7
-9
-3
-3
-6
-8
-1
-3
-9
-3
-8
-1
-9
-9
-10
-2
-5
-6
-2
-3
"Ctrl" + D - выход!
^D
1
0 / 0 / 0
Регистрация: 16.07.2018
Сообщений: 10
16.07.2018, 15:01  [ТС]
Код немного переписал:
Java
1
2
3
4
5
6
7
8
9
public static void fillMatrix(int matrixSize, int[][] array, int maximumNumber) {
        for (int a = 0; a < matrixSize; a++) {
            for (int b = 0; b < array.length; b++) {
                final Random random = new Random();
                array[a][b] = (random.nextInt(maximumNumber)+1) + (random.nextInt(maximumNumber)+1);
                // array[a][b] = (int)(Math.random() * (maximumNumber-2) ) + (int)( Math.random() * (maximumNumber-2));
            }
        }
    }
По прежнему выводит инты диапазона, более заданного юзером в переменной maximumNumber.

Подозреваю, что проблема в этой строчке:
Java
1
array[a][b] = (random.nextInt(maximumNumber)+1) + (random.nextInt(maximumNumber)+1);
Где ошибка?
0
 Аватар для Aviz__
2744 / 2053 / 507
Регистрация: 17.02.2014
Сообщений: 9,472
16.07.2018, 15:21
Лучший ответ Сообщение было отмечено Berezhany как решение

Решение

а так?
Java
1
2
3
4
5
6
7
8
static void fillMatrix(int[][] arrayMatr, int maximumNumber) {
        final Random random = new Random();
        for (int i = 0; i < arrayMatr.length; i++) {
            for (int j = 0; j < arrayMatr[i].length; j++) {
                arrayMatr[i][j] = random.nextInt(maximumNumber);
            }
        }
    }
и пользуй это https://www.cyberforum.ru/java/thread2250765.html
0
0 / 0 / 0
Регистрация: 16.07.2018
Сообщений: 10
16.07.2018, 16:13  [ТС]
Спасибо Aviz
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.07.2018, 16:13
Помогаю со студенческими работами здесь

Заполнить одномерный динамический массив случайными числами в заданном диапазоне
как заполнить одномерный динамический массив случайными числами от -100 до +100 вот вариант от 1 до 100: srand(time(NULL)); ...

Заполнить массив заданной размерности случайными числами в заданном диапазоне
1,4,9,16,...,100 Нужно заполнить массив заданной размерности случайными числами в заданном диапазоне Найти индексы элементов значения...

Заполнить одномерный массив состоящий их 20 целых случайных чисел в заданном диапазоне
помогитее....

Случайным образом заполнить двумерный массив фиксированного размера целыми числами в заданном диапазоне
Кто знает как решить задачу на С++, при помощи двумерного массива? Написать программу, которая случайным образом заполняет двумерный ...

Функции для обработки матриц: объявить и заполнить двумерный динамический массив случайными числами в заданном диапазоне
Как переделать этот код так , чтоб он соответствовал этому заданию: /*Объявить и заполнить двумерный динамический массив случайными ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru