Один большой массив и два маленьких

  • 6
  • Недоступна
1. Создать массив на 20 чисел. 2. Ввести в него значения с клавиатуры. 3. Создать два массива на 10 чисел каждый. 4. Скопировать большой массив в два маленьких: половину чисел в первый маленький, вторую половину во второй маленький. 5. Вывести второй маленький массив на экран, каждое значение выводи
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (20)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Timur Khasmamedov
Уровень 14
Expert
12 января, 19:25
Из интересного, кроме решения в лоб (которое помечено как верное): - System.arrayCopy - Arrays.copyOfRange (так сделал я, приняло) - стримы (тут надо будет разобраться, самый сложный пожалуй)
Радмир
Уровень 6
2 декабря 2022, 11:26
Задача решается через 3 цикла. Первый используется для введения значений в большой массив, второй и третий цикл используются для присваивания значений большого массива двум маленьким массивам. Нужно только подумать над индексами)
Anonymous #2761575
Уровень 1
6 ноября 2022, 20:04
Результат тот же, но тест не понимает, что массивы были верно определены :)
package com.javarush.task.jdk13.task07.task0705;

import java.io.BufferedReader;
import java.io.InputStreamReader;

/*
Один большой массив и два маленьких
*/

public class Solution {
    private static final int cntB = 20;
    private static final int cntS = cntB/2;
    public static void main(String[] args) throws Exception {
        //напишите тут ваш код
        ;
        int[] bigArr = new int[cntB];
        int[] fArr = new int[cntS];
        int[] sgArr = new int[cntS];
        //Input
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        int j;
        for (int i=0; i < cntB; i++)
        {
            bigArr[i] = Integer.parseInt( reader.readLine());

            if  (i < cntS){
             fArr[i] = bigArr[i];
            }
            else {
                j = i - cntS;
             sgArr[j] = bigArr[i];
              System.out.println(sgArr[j]);
            }

        }


    }
}
Anonymous #3089115
Уровень 13
21 октября 2022, 14:31
почему выводится одно и то же число, хотя в целом должно все нормально выводится BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); int masivBig[] = new int [20]; String sAge = reader.readLine(); for (int x = 0; x < 20; x++){ int nAge = Integer.parseInt(sAge); masivBig[x] = nAge; System.out.println(masivBig[x]); }
Радмир
Уровень 6
2 декабря 2022, 11:24
Потому что String sAge = reader.readLine(); стоит вне цикла и ввод значения в переменную sAge происходит только ОДИН раз, а в цикле это ОДНО значение каждую итерацию присваивается новому элементу массива
AnnBez
Уровень 23
26 июля 2022, 13:22
А я не использовала метод System.arraycopy() и сделала с помощью цикла, где внутри идет проверка. Если i<10, то в первый массив, иначе во второй.
3 августа 2022, 11:04
очень помогло при чем с первого раза
Platon
Уровень 2
25 января 2022, 16:02
Если использовать метод System.arraycopy() и выводить на консоль через System.out.println(Arrays.toString(второй массив)); получается красивее, в одну строку, но проверку задача не проходит. И для метода нужен импорт - import java.util.Arrays.
Tatiana A.
Уровень 16
13 января 2022, 18:15
Задача прошла проверку только после импорта класса import java.util.Arrays;
Николай
Уровень 17
23 декабря 2021, 09:00
Что то пошло не так .... Вот я создал массив с количеством строк половина от первого первый массив (20) строк тоесть второй будет 10 :))) так то правильно но в задача не прошла проверку int[] namberDo20 = new int[namber20.length/2];
Виталий Лобанов QA Automation Engineer в Философия ИТ
16 октября 2021, 15:59
https://www.youtube.com/watch?v=-MqL45BlUDU 2 минуты про копирование массивов для тех кому впадлу читать букв много
Victoria Neshcheret
Уровень 38
15 октября 2021, 11:29
Вот статья, подходящая к этой задаче. В ней описан способ, как предлагается в правильном решении, и другим более простом.