Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 15.12.2018
Сообщений: 6
1

Создать двумерный массив, опираясь на другой двумерный массив

15.12.2018, 22:56. Показов 1588. Ответов 4
Метки нет (Все метки)

У меня есть такой массив

0 0 0 0 0 0 0
6 3 2 2 8 9 3
7 6 8 3 4 5 1
0 0 0 0 0 0 0
0 0 0 0 0 0 0
7 2 9 8 3 1 3

Из него нужно сделать массив, в котором не будет строк, где все элементы - нули, т.е. вот такой массив

6 3 2 2 8 9 3
7 6 8 3 4 5 1
7 2 9 8 3 1 3

Вот что есть,
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
public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
 
        System.out.print("Введите название файла ");
        String fileName = sc.next();
 
        int[][] mass = ArrayUtils.readIntArray2FromFile(fileName); //считывает двумерный массив из файла
 
        System.out.println("Исходный массив:");
        printMass(mass);
 
        int a = 0;
 
        int mass1[][] = new int[mass.length][mass[0].length];
        int b = 0;
 
        for (int i = 0; i < mass.length; i++) {
            for (int j = 0; j < mass[i].length; j++) {
                if (mass[i][j] != 0) {
                    a += 1;
                }
            }
            if (a == mass[i].length) {
                for (int j = 0; j < mass[0].length; j++) {
                    mass1[i][j] = mass[b][j];
                }
                b += 1;
            }
            a = 0;
        }
        System.out.println("Новый массив:");
        printMass(mass1);
    }
 
    public static void printMass(int[][] a) {
        for (int i = 0; i < a.length; i++) {
            for (int j = 0; j < a[0].length; j++) {
                System.out.print(a[i][j] + "  ");
            }
            System.out.println("");
        }
    }
но выводит он вот это

0 0 0 0 0 0 0
0 0 0 0 0 0 0
6 3 2 2 8 9 3
0 0 0 0 0 0 0
0 0 0 0 0 0 0
7 6 8 3 4 5 1
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.12.2018, 22:56
Ответы с готовыми решениями:

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

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

Массив: Как скопировать двумерный массив в другой массив?
Как скопировать двумерный массив в другой массив?

Двумерный массив. Ввести двумерный массив, найти сумму элементов каждого столбца
Ввести двумерный массив, найти сумму элементов каждого столбца.

4
Супер-модератор
Эксперт PythonЭксперт Java
7563 / 4146 / 1535
Регистрация: 21.10.2017
Сообщений: 11,705
15.12.2018, 23:11 2
Лучший ответ Сообщение было отмечено RemiKses как решение

Решение

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
public class Cyber {
 
    public static void main(String[] args) {
        Cyber cyber = new Cyber();
        int[][] m = {
                {1, 2, 3, 4},
                {0, 0, 0, 0},
                {1, 2, 3, 4},
                {0, 0, 0, 0},
                {1, 2, 3, 4},
                {0, 0, 0, 0},
                {1, 2, 3, 4}
        };
 
        int[][] r = cyber.getWithoutZeros(m);
 
        for (int[] ints : r) {
            System.out.println(Arrays.toString(ints));
        }
    }
 
    private int[][] getWithoutZeros(int[][] matrix) {
        List<int[]> result = new ArrayList<>();
        for (int[] row : matrix) {
            if (!allZero(row)) result.add(row);
        }
        return result.toArray(new int[0][]);
    }
 
    private boolean allZero(int[] row) {
        for (int elem : row) {
            if (elem != 0) return false;
        }
        return true;
    }
}
1
0 / 0 / 0
Регистрация: 15.12.2018
Сообщений: 6
16.12.2018, 02:41  [ТС] 3
Цитата Сообщение от iSmokeJC Посмотреть сообщение
Cyber cyber = new Cyber();
Спасибо за помощь, но может я чего-то не понял, но я не могу найти ничего хоть как-то связанного с Cyber
0
Супер-модератор
Эксперт PythonЭксперт Java
7563 / 4146 / 1535
Регистрация: 21.10.2017
Сообщений: 11,705
16.12.2018, 08:54 4
RemiKses, Cyber - это название класса, которое я придумал.
1
0 / 0 / 0
Регистрация: 15.12.2018
Сообщений: 6
16.12.2018, 16:14  [ТС] 5
iSmokeJC, я крайне внимателен, спасибо за ответы
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.12.2018, 16:14

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Двумерный массив. Заполнить и вывести двумерный массив БЕЗ использования цикла FOR
Заполнить ивывести двумерный массив БЕЗ использования цикла FOR очень срочно!!!

Не могу через указатель на двумерный массив вернуть все значения в другой массив
Не могу через указатель на двумерный массив вернуть все значения в другой массив возвращается...

Массив: Создать двумерный массив, заполнив его согласно заданной схеме

Создать двумерный массив все четные элементы переписать в одномерный массив
создать двумерный массив все четные элементы переписать в одномерный массив


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.