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

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

27.10.2017, 17:43. Показов 2132. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
вот код
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
package com.company;
import  java.lang.String;
import  java.util.Random;
class Main {
    public static void main(String[] args) {
        Random rand = new Random();
        int c=15;
        int[] a = new int[15];
        int[] b = new int[15];
        for (int i = 0; i < 15; ++i) {
            a[i] = rand.nextInt(199) -99;
            b[i]=a[i];
            System.out.print(a[i]+" ");
        }
        System.out.println();
        for (int i=0;i<15;) {
            for (int k=1;k<c;){
              if (b[i]!=b[i+k]) {
                k += 1;
              }
              if (k==c){
                  System.out.print(b[i]+" ");
              }
            }
          i++;
          c=c-1;
        }
    }
}
Почему то не печатается последний элемент -_-
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.10.2017, 17:43
Ответы с готовыми решениями:

Дан массив В[0:n-1] целых чисел и числа x и y , где x<y. на основе элементов массива В сформировать массив D[0:m-1]
Нужен полный текст программы, заранее благодарен

Дан массив X(25). Сформировать новый массив из чисел исходного, лежащих в интервале [-3,7]
Доброго времени суток... Написание данной программы на языке (С) вызвало у меня некое затруднение,буду очень рад,если кто-то может...

Дан массив D(12). Сформировать новый массив из положительных кратных 3 чисел исходного
D(12) для более лёгкой проверки я сделал massiv. Я не знаю почему первым в massiv1 идёт 0 и не всегда корректно отображаются числа ...

5
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
27.10.2017, 18:10
Как-то так
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
 public static void main(String[] args) {
        Random rand = new Random();
        int c = 15;
        int[] a = new int[15];
        int[] b = new int[15];
        for (int i = 0; i < 15; ++i) {
            a[i] = rand.nextInt(199) - 99;
            System.out.print(a[i] + " ");
        }
        System.out.println();
        int j = 0;
        for (int i = 0; i < a.length; i++) {
            boolean isAdd = true;
            int k = 0;
            while(isAdd && k < j) {
                if (a[i] == b[k]) {
                    isAdd = false;
                }
                k++;
            }
            if (isAdd) {
                b[j] = a[i];
                j++;
            }
 
        }
        b = Arrays.copyOfRange(b, 0, j);
        System.out.println(Arrays.toString(b));
    }
0
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
27.10.2017, 19:13
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 public static int[] deleteDuplicates(int[] array) {
        int[] result = array != null ? Arrays.copyOf(array, array.length) : new int[0];
        if (result.length > 1) {
            int count = 0;
            for (int i = 0; i < result.length - count; i++) {
                for (int k = i + 1; k < result.length - count; k++) {
                    if (result[i] == result[k]) {
                        System.arraycopy(result, k + 1, result, k, result.length - k - 1);
                        k--;
                        count++;
                    }
                }
            }
            result = Arrays.copyOf(result, result.length - count);
        }
        return result;
    }
Добавлено через 16 минут
Вот полный код:

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
import java.util.Arrays;
import java.util.Random;
 
public class ArrayWithoutDuplicate {
    public static void main(String[] args) {
        int[] array = fillRandomArray(9, -1, 3);
        int[] result = deleteDuplicates(array);
        System.out.println(Arrays.toString(array) + "\n" + Arrays.toString(result));
    }
 
    public static int[] fillRandomArray(int length, int startRange, int endRange) {
        int[] result = length > 0 ? new int[length] : new int[0];
        if (length > 0) {
            Random rand = new Random();
            for (int i = 0; i < length; i++) {
                result[i] = rand.nextInt(Math.abs(startRange - endRange) + 1) + startRange;
            }
        }
        return result;
    }
 
    public static int[] deleteDuplicates(int[] array) {
        int[] result = array != null ? Arrays.copyOf(array, array.length) : new int[0];
        if (result.length > 1) {
            int count = 0;
            for (int i = 0; i < result.length - count; i++) {
                for (int k = i + 1; k < result.length - count; k++) {
                    if (result[i] == result[k]) {
                        System.arraycopy(result, k + 1, result, k, result.length - k - 1);
                        k--;
                        count++;
                    }
                }
            }
            result = Arrays.copyOf(result, result.length - count);
        }
        return result;
    }
}
0
502 / 348 / 134
Регистрация: 14.06.2016
Сообщений: 669
27.10.2017, 19:31
Java
1
2
3
4
5
6
7
8
    public static void main(String[] args) {
 
        int[] a = new Random().ints(-99, 100).limit(15).toArray();
        int[] b = Arrays.stream(a).distinct().toArray();
 
        System.out.println(Arrays.toString(a) + "\n" + Arrays.toString(b));
 
    }
1
1 / 1 / 0
Регистрация: 16.09.2017
Сообщений: 53
28.10.2017, 00:26  [ТС]
А можно эти строчки
Java
1
2
b = Arrays.copyOfRange(b, 0, j);
System.out.println(Arrays.toString(b));
Заменить на простой вывод массива b ?
Java
1
2
for (int i = 0; i < 15; ++i) {
            System.out.print(b[i]+" ");
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
28.10.2017, 00:47
Лучший ответ Сообщение было отмечено Dobriy_Bobr как решение

Решение

Цитата Сообщение от Dobriy_Bobr Посмотреть сообщение
b = Arrays.copyOfRange(b, 0, j);
j хранит количество найденных уникальных элементов. В итоге в b останутся только уникальные элементы и длинна массива будет равна j.
Если же закомментировать эту строку, то длинна массива b будет всегда 15 (в Вашем примере). Допустим массив а состоит из 15-ти одинаковых элементов. Тогда в массиве b элемент с нулевым индексом будет равен уникальному элементу из а, а остальные элементы массива b будут нули. А еще лучше задайте массив a с дублями и посмотрите на вывод с указанной строкой и без.



Это
Цитата Сообщение от Dobriy_Bobr Посмотреть сообщение
System.out.println(Arrays.toString(b));
можете заменить на
Java
1
2
for (int i = 0; i < b.length; i++) {
  System.out.print(b[i]+" ");
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.10.2017, 00:47
Помогаю со студенческими работами здесь

Дан массив X(10). Сформировать новый массив из четных чисел исходного
Помогите, кому не сложно, спасибо заранее :)

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

Дан массив из 25 элементов. Сформировать из него новый массив, элементы которого кратны 5
Помогите решить задачу. Дан массив из 25 элементов. Сформировать из него новый массив, элементы которого кратны 5.

Дан массив X(N). Сформировать новый массив, выбросив из исходного все элементы с наименьшим значением.
Помогите, пожалуйста, решить. И если можно, то поподробнее, а то что-то мало понимаю массивы...(

Дан двумерный массив. Сформировать одномерный массив, каждый элемент которого равен количеству элементов строки, больших данного числа
1)Дан двумерный массив размерностью 4х6, заполненный целыми числами, введенными с клавиатуры. Сформировать одномерный массив, каждый...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Управление камерой с помощью скрипта 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 позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru