0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 7
1

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

24.11.2015, 08:32. Показов 9989. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Последний раз прошу, пожалуйста
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.11.2015, 08:32
Ответы с готовыми решениями:

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

Дан двумерный массив. Сформировать одномерный массив из элементов заданного массива, расположенных под побочной диагональю.
Дан двумерный массив размером n x n. Сформировать: Одномерный массив из элементов заданного...

Дан двумерный массив размерностью Н. сформировать одномерный массив из элементов заданного массива расположенных над главной диагональю.
помогите решить=)Дан двумерный массив размерностью Н. сформировать одномерный массив из элементов...

Дан двумерный массив A(N*N). Сформировать одномерный массив из утроенных четных чисел
Задание: Дан двумерный массив A(N*N). Сформировать одномерный массив из утроенных четных чисел.

4
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
24.11.2015, 09:19 2
Лучший ответ Сообщение было отмечено Marola как решение

Решение

Прозвучало как угроза.

Кликните здесь для просмотра всего текста
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.util.ArrayList;
import java.util.Random;
 
public class TwoToOne {
    public static void main(String[] args) {
        int[][] twoDim = new int[5][5];
        getTwoDim(twoDim);
        printTwoDim(twoDim);
        ArrayList<Integer> oneDim = new ArrayList<Integer>();
        createOneDim(twoDim, oneDim);
        Integer[] oneDimArray = oneDim.toArray(new Integer[oneDim.size()]);
        printOneDim(oneDimArray);
    }
 
    private static void getTwoDim(int[][] twoDim) {
        for (int i = 0; i < twoDim.length; i++) {
            for (int j = 0; j < twoDim.length; j++) {
                twoDim[i][j] = new Random().nextInt(50);
            }
        }
    }
 
    private static void printTwoDim(int[][] twoDim) {
        for (int[] oneDim : twoDim) {
            String row = "";
            for (int element : oneDim) {
                row += element + "\t";
            }
            System.out.println(row);
        }
    }
 
    private static void createOneDim(int[][] twoDim, ArrayList<Integer> oneDimResult) {
        for (int[] oneDim : twoDim) {
            for (int element : oneDim) {
                if (element % 2 == 0) {
                    oneDimResult.add(element);
                }
            }
        }
    }
 
    private static void printOneDim(Integer[] oneDimInteger) {
        String row = "";
        for (Integer element : oneDimInteger) {
            row += element + "\t";
        }
        System.out.println(row);
    }
}
1
323 / 310 / 206
Регистрация: 14.09.2015
Сообщений: 827
24.11.2015, 21:34 3
Doctor_, хорошее решение. А может чего-нить попроще? Типа вот такого варианта. Как считаете, допустимо подобное решение?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public void TwoToOne() {
        int n = 5, m = 7, e = 0, t = 1;
        int[][] two = new int[n][m];
        int[] temp = new int[n * m];
        int[] one = new int[(n * m) / 2];
        for (int q = 0; q < n; q++) {
            for (int w = 0; w < m; w++) {
                two[q][w] = (int) (Math.random() * 90 - 25);
                temp[e] = two[q][w];
                e++;
                System.out.printf("%5d", two[q][w]);
            }
            System.out.println();
        }
        System.out.println("------------------------------------------");
        for (int i = 0; i < one.length; i++) {
            one[i] = temp[t];
            t += 2;
            System.out.printf("%5d", one[i]);
        }
        System.out.println();
    }
Добавлено через 4 часа 59 минут
Да, кстати, ежели требуется (условия можно понять и так и эдак) выбрать чётные числа из матрицы, то можно сделать вот так:
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
    public void TwoToEven(){
        int n = 5, m = 5, e = 0, t = 0;
        int[][] two = new int[n][m];
        for (int q = 0; q < n; q++) {
            for (int w = 0; w < m; w++) {
                two[q][w] = (int) (Math.random() * 90 - 25);
                if(two[q][w] % 2 == 0){
                e++;
                }
                System.out.printf("%5d", two[q][w]);
            }
            System.out.println();
        }
        System.out.println("------------------------------------------");
        int[] even = new int[e];
        for (int i = 0; i < n; i++) {
            for(int j = 0; j < m; j++){
                if(two[i][j] % 2 == 0){
                    even[t] = two[i][j];
                    t++;
                }
            }
        }
        System.out.println(Arrays.toString(even));
    }
2
0 / 0 / 1
Регистрация: 04.10.2022
Сообщений: 8
07.02.2023, 17:48 4
Цитата Сообщение от HOBATOP Посмотреть сообщение
e
Здравствуйте
Можете просвятить в этом моменте? что тут происходит?

Цитата Сообщение от HOBATOP Посмотреть сообщение
int[][] two = new int[n][m];
        int[] temp = new int[n * m];
        int[] one = new int[(n * m) / 2];
0
98 / 75 / 25
Регистрация: 17.03.2023
Сообщений: 161
19.03.2023, 07:49 5
можно ещё проще

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package demo;
 
import java.util.Arrays;
import java.util.Random;
import java.util.stream.IntStream;
 
public class FlatMapDemo {
 
    private final static int MIN = -99;
    private final static int MAX = 99;
    private final static int N_SIZE = 5;
    private final static int M_SIZE = 7;
 
    public static void main(String[] args) {
        int[][] a = new int[N_SIZE][M_SIZE];
        IntStream.range(0, N_SIZE).forEach(i -> a[i] = new Random().ints(MIN, MAX).limit(M_SIZE).toArray());
        System.out.println(Arrays.deepToString(a));
        int[] r = Arrays.stream(a).flatMapToInt(Arrays::stream).filter(number -> number % 2 == 0).toArray();
        System.out.println(Arrays.toString(r));
    }
}
строчка 16 генерирует двухмерную матрицу N_SIZE на M_SIZE заполняя её числами от MIN до MAX в случайном порядке.
строчка 18 выбирает из всей матрицы только четные и складывает их в один массив.



вывод на экран

Код
[[-9, -35, 38, 33, 72, -40, 3], [-63, -99, -91, -91, 38, 64, -33], [-58, 98, -52, -71, 54, -49, -91], [82, -26, 63, -54, -29, -29, -1], [-1, -40, 87, -62, 72, -91, -7]]
[-60, 16, -76, 26, -46, 76, -70, 60, 32, -70, 74, 44, 88, 66, 92, -74, -92]
Добавлено через 22 минуты
прошу прощение, вывод на экран скопировал фигню какую то :-)

ещё 3 запуска.

Код
[[-96, 48, 21, -81, -44, -37, 83], [-52, 7, -73, 11, -32, -8, 78], [-90, -49, 82, -88, 40, 0, -16], [-13, 49, -51, 15, 80, -35, 86], [-48, 45, -70, 42, 5, 94, 77]]
[-96, 48, -44, -52, -32, -8, 78, -90, 82, -88, 40, 0, -16, 80, 86, -48, -70, 42, 94]
Код
[[-61, 31, 51, -7, -1, -30, 84], [24, -83, -87, 88, 87, -76, 12], [70, 11, -53, -79, 76, 98, -38], [83, 91, -85, 28, 65, -18, 73], [-30, -77, -27, -53, -83, -10, -49]]
[-30, 84, 24, 88, -76, 12, 70, 76, 98, -38, 28, -18, -30, -10]
Код
[[89, -57, -88, 89, -29, 79, -44], [0, -58, 12, 46, 67, -21, -76], [-82, -18, -93, 96, 59, -83, -50], [-27, 93, -3, 85, 81, -30, 29], [3, -74, -34, -82, 1, 45, 10]]
[-88, -44, 0, -58, 12, 46, -76, -82, -18, 96, -50, -30, -74, -34, -82, 10]
0
19.03.2023, 07:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.03.2023, 07:49
Помогаю со студенческими работами здесь

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

Дан одномерный массив Z[n]. Сформировать массив L, содержащий только нечетные элементы массива Z
Задача на Pascal. Не решу - зачёт не поставят.

Сформировать одномерный массив из четных элементов двумерного
Дан двумерный массив размерностью 6´5, заполненный целыми числами. Сформировать одномерный массив,...

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru