Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
2 / 2 / 2
Регистрация: 10.11.2012
Сообщений: 124

Копирование массива

31.07.2014, 18:53. Показов 1064. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Удалить из массива каждый третий элемент (копированием)

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class zadanie4 {
    public static void main(String[] args) {
        
        int ar[] = {1,2,3,4,5,6,7,8,9,10};
        int arr[] = new int[10];
        
        for (int i = 3; i < ar.length; i = i+3 ) {
            
            System.arraycopy(ar,i,arr,0,ar.length);
            
        }
        
        for (int i = 0; i < arr.length; i++) {
        System.out.println("a[" +i+ "]" + arr[i]);
        }
        
    }
}
написал пока какую-то ерунду, не могу понять пока алгоритм того, как копировать первые два числа, потом пропускать третье и все сначала. Чет туплю(
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.07.2014, 18:53
Ответы с готовыми решениями:

Копирование массива
Недавно начал изучать Java по Хорстманну.

Копирование массива
Добрый день, уважаемые! Новичок, совсем ещё зелёный, только ещё учусь программированию на Java. Такой вот вопрос поставил меня в тупик:...

Копирование массива
Люди помогите, пожалуйста, где я ошибаюсь? Вот код, в котором ошибка после копирования массива: public void AddStudent() { ...

10
4 / 3 / 3
Регистрация: 19.03.2013
Сообщений: 54
31.07.2014, 19:02
Попробуй через счетчик
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
31.07.2014, 19:16
i%3 == 0
индикатор каждой 3ей ячейки.
0
 Аватар для smoke853
505 / 511 / 42
Регистрация: 12.12.2013
Сообщений: 484
31.07.2014, 19:56
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package com.smoke;
 
import java.util.Arrays;
 
class Example {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        int[] result = new int[10];
 
        for (int i = 0; i < arr.length; i++) {
            if (i % 3 != 2)
                result[i] = arr[i];
        }
 
        System.out.println(Arrays.toString(result)); // [1, 2, 0, 4, 5, 0, 7, 8, 0, 10]
    }
}
0
Почетный модератор
 Аватар для ildwine
6201 / 2963 / 1300
Регистрация: 04.03.2013
Сообщений: 5,797
Записей в блоге: 1
31.07.2014, 20:31
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
package ru.ildwine.y.copy;
 
public class CopyA {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        int[] result = new int[10];
        int j = 0;
        //Вывод первого массива
        for (int i = 0; i < 10; i++) {
            System.out.print(arr[i] + " ");
        }
        System.out.println();
        //копирование
        for (int i = 0; i < 10; i++) {
            if ((i + 1) % 3 == 0) {
                result[j] = arr[i];
                j++;
            }
        }
        //вывод 2го
        for (int i = 0; i < j; i++) {
            System.out.print(result[i] + " ");
        }
    }
}
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
31.07.2014, 22:46
Если мы удаляем каждый 3ий элемент то размер нового массива будет меньше на n/3 от старого. Не обязательно делать его такого же размера как в решениях выше
0
 Аватар для smoke853
505 / 511 / 42
Регистрация: 12.12.2013
Сообщений: 484
31.07.2014, 23:25
Лучший ответ Сообщение было отмечено Ньюбии как решение

Решение

Цитата Сообщение от KEKCoGEN Посмотреть сообщение
Не обязательно делать его такого же размера как в решениях выше
Само собой, но ТС пишет в своем коде int arr[] = new int[10]; Следовательно, не ясно, какой результат он ожидает увидеть.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package com.smoke;
 
import java.util.Arrays;
 
class Example {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        int arr_len = arr.length;
        int[] result = new int[arr_len - arr_len / 3];
 
        for (int i = 0, j = 0; i < arr_len; i++) {
            if (i % 3 != 2) {
                result[j] = arr[i];
                j++;
            }
        }
        System.out.println(Arrays.toString(result)); // [1, 2, 4, 5, 7, 8, 10]
    }
}
1
2 / 2 / 2
Регистрация: 10.11.2012
Сообщений: 124
31.07.2014, 23:50  [ТС]
через System.arraycopy можно как-то решить задачу?
0
 Аватар для smoke853
505 / 511 / 42
Регистрация: 12.12.2013
Сообщений: 484
01.08.2014, 00:40
Цитата Сообщение от Ньюбии Посмотреть сообщение
через System.arraycopy можно как-то решить задачу?
#7, 13 строка кода - заменить на:
Java
1
System.arraycopy(arr, i, result, j, 1);
1
2 / 2 / 2
Регистрация: 10.11.2012
Сообщений: 124
01.08.2014, 13:25  [ТС]
if (i % 3 != 2) тоже не очень понимаю эту строку. Почему остаток не равен 2?
0
Заблокирован
01.08.2014, 16:10
Ньюбии, т.к. не нужно копировать каждый 3-ий элемент, а индексация начинаеться с 0.
0 % 3 = 0
1 % 3 = 1
2 % 3 = 2
3 % 3 = 0
4 % 3 = 1
...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.08.2014, 16:10
Помогаю со студенческими работами здесь

Копирование двумерного массива
Код ниже. Грубо говоря, он делит строку на маленькие подстрочки меньшего размера (чанки фиксированной величины, для примера 10), получается...

Копирование массива(книга Шилдта)
public class Ragged { public static void main(String args) { int i; int nums1 = new int; int nums2 =...

Копирование массива
Здравствуйте. Возник очень тупой вопрос: float array = new float; // Заполняем массив float array1 = array // При данных...

Копирование массива
Здравствуйте. Собственно вот в чем вопрос. Есть три текстэрии. В первую текстирию я ввожу текст, во вторую последовательность...

Копирование массива
Добрый день. Осваиваю язык C#. Задача в следующем. Как скопировать последовательно элементы двумерного массива размером 5*5 в два массива...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
YAFU@home — распределённые вычисления для математики. На CPU
Programma_Boinc 20.01.2026
YAFU@home — распределённые вычисления для математики. На CPU YAFU@home — это BOINC-проект, который занимается факторизацией больших чисел и исследованием aliquot-последовательностей. Звучит. . .
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru