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

Определить, есть ли в матрице столбец, в котором равное количество положительных и отрицательных элементов

22.02.2019, 21:23. Показов 3195. Ответов 25

Студворк — интернет-сервис помощи студентам
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
import javax.swing.JOptionPane;
 
public class ARR {
    
    public static void main(String[] args) 
    {
        int[][] array={
            {3, 1, 3, -2},
            {2, 9, -1, 8},
            {1, -3, 3, 4},
            {8, 1, -1, -8},};    
        int positive = 0, negative = 0, box = 0;    
            for (int i=0; i < array.length; i++)
                
            { 
                for (int j = 0; j < array.length; j++)
            {
                    if (array[i][j]>0)
                        positive++;
                        else negative++;
            }
            if (positive == negative)
                box = i+1;
            
            } JOptionPane.showMessageDialog(null, "№ "+ box);
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.02.2019, 21:23
Ответы с готовыми решениями:

Определить, есть ли в матрице столбец, в котором равное число положительных и отрицательных элементов
2.Дан двумерный массив А(пxт), заполненный случайными числами. Определить, есть ли в данном массиве столбец, в котором равное число...

Определить, есть ли в матрице столбец, в котором равное число положительных и отрицательных элементов
Дан двумерный массив размерностью n х m, заполненный случайными числами. Определить, есть ли в данном массиве столбец, в котором равное...

Определить, есть ли в массиве столбец, в котором равное количество положительных и отрицательных элементов
Дан двумерный массив размером n*m, заполненный случайными числами. Определить, есть ли в данном массиве столбец, в котором равное...

25
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
22.02.2019, 21:27
Marina199913, вопрос-то в чем?
0
0 / 0 / 0
Регистрация: 22.02.2019
Сообщений: 49
22.02.2019, 21:29  [ТС]
не могу понять почему не работает

Добавлено через 43 секунды
не могу понять почему не работает
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
22.02.2019, 21:35
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public static void main(String[] args) {
        int[][] array = {
                {3, 1, 3, -2},
                {2, 9, -1, 8},
                {1, -3, 3, 4},
                {8, 1, -1, -8}};
        for (int i = 0; i < array[0].length; i++) {
            int positive = 0, negative = 0;
            for (int j = 0; j < array.length; j++) {
                if (array[j][i] > 0)
                    positive++;
                else negative++;
            }
            if (positive == negative) {
                System.out.printf("В столбце %d количество положительных и отрицательных элементов одинаково\n", i);
            }
        }
    }
0
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
22.02.2019, 21:43
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
import java.util.Arrays;
 
public class ArrayDeep {
    public static int[][] deepArray = {
            {3, 1, 3, -2},
            {2, 9, -1, 8},
            {1, -3, 3, 4},
            {8, 1, -1, -8}
    };
 
    public static void main(String[] args) {
        System.out.println("Дан массив:");
        printDeepArray(deepArray);
 
        int indexRow = getIndexRowArray(deepArray);
        System.out.println(indexRow != -1 ?
                "Стобец в массиве с равным количством положительных и отрицательных чисел имеет индекс №" + indexRow :
        "Данный массив не имеет столбцов с равнм кол-вом отрицательных и положительных чисел!");
    }
 
    public static int getIndexRowArray(int[][] array) {
        int result = -1;
        if (array != null) {
            for (int j = 0; j < array[0].length; j++) {
                int res = 0;
                for (int i = 0; i < array.length; i++) {
                    res = array[i][j] >= 0 ? res + 1 : res - 1;
                }
                if (res == 0) {
                    result = j;
                    break;
                }
            }
        }
        return result;
    }
 
    public static void printDeepArray(int[][] array) {
        if (array != null) {
            for (int[] line : array) {
                System.out.println(Arrays.toString(line));
            }
        }
    }
}
0
0 / 0 / 0
Регистрация: 22.02.2019
Сообщений: 49
22.02.2019, 21:44  [ТС]
Cпасибо, а как сделать так что бы показывало только первый рядок в котором однаковое число отрицательних и положительних чисел?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
22.02.2019, 21:45
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public static void main(String[] args) {
        int[][] array = {
                {3, 1, 3, -2},
                {2, 9, -1, 8},
                {1, -3, 3, 4},
                {8, 1, -1, -8}};
        for (int i = 0; i < array[0].length; i++) {
            int positive = 0, negative = 0;
            for (int j = 0; j < array.length; j++) {
                if (array[j][i] > 0)
                    positive++;
                else negative++;
            }
            if (positive == negative) {
                System.out.printf("В столбце %d количество положительных и отрицательных элементов одинаково\n", i);
                break;
            }
        }
    }
0
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
22.02.2019, 21:49
типа такого:
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
import java.util.Arrays;
 
public class ArrayDeep {
    public static int[][] deepArray = {
            {3, 1, 3, -2},
            {2, 9, -1, 8},
            {1, -3, 3, 4},
            {8, 1, -1, -8}
    };
 
    public static void main(String[] args) {
        System.out.println("Дан массив:");
        printDeepArray(deepArray);
 
        int[] array = getIndexRowArray(deepArray);
        System.out.println("Ответ: " + Arrays.toString(array));
    }
 
    public static int[] getIndexRowArray(int[][] array) {
        int[] result = new int[0];
        if (array != null) {
            for (int j = 0; j < array[0].length; j++) {
                int res = 0;
                for (int i = 0; i < array.length; i++) {
                    res = array[i][j] >= 0 ? res + 1 : res - 1;
                }
                if (res == 0) {
                    result = new int[array[0].length];
                    for (int index = 0; index < result.length; index++) {
                        result[index] = array[index][j];
                    }
                    break;
                }
            }
        }
        return result;
    }
 
    public static void printDeepArray(int[][] array) {
        if (array != null) {
            for (int[] line : array) {
                System.out.println(Arrays.toString(line));
            }
        }
    }
}
0
0 / 0 / 0
Регистрация: 22.02.2019
Сообщений: 49
22.02.2019, 21:49  [ТС]
Огромное спасибо, скажи еще пожалуйста, как сделать не столбец, а рядок?
0
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
22.02.2019, 21:58
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
import java.util.Arrays;
 
public class ArrayDeep {
    public static int[][] deepArray = {
            {3, 1, 3, -2},
            {2, 9, -1, 8},
            {1, -3, 3, 4},
            {8, 1, -1, -8}
    };
 
    public static void main(String[] args) {
        System.out.println("Дан массив:");
        printDeepArray(deepArray);
 
        int[] array = getIndexRowArray(deepArray);
        System.out.println("Ответ: " + Arrays.toString(array));
    }
 
    public static int[] getIndexRowArray(int[][] array) {
        int[] result = new int[0];
        if (array != null) {
            for (int i = 0; i < array.length; i++) {
                int res = 0;
                for (int j = 0; j < array.length; j++) {
                    res = array[i][j] >= 0 ? res + 1 : res - 1;
                }
                if (res == 0) {
                    result = Arrays.copyOf(array[i], array.length);
                    break;
                }
            }
        }
        return result;
    }
 
    public static void printDeepArray(int[][] array) {
        if (array != null) {
            for (int[] line : array) {
                System.out.println(Arrays.toString(line));
            }
        }
    }
}
Добавлено через 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
import java.util.Arrays;
 
public class ArrayDeep {
    public static int[][] deepArray = {
            {3, 1, 3, -2},
            {2, 9, -1, 8},
            {1, -3, -3, 4},
            {8, 1, -1, -8}
    };
 
    public static void main(String[] args) {
        System.out.println("Дан массив:");
        for (int[] line : deepArray) {
            System.out.println(Arrays.toString(line));
        }
 
        System.out.println("Ответ: ");
        for (int[] line : deepArray) {
            int res = 0;
            for (int index = 0; index < line.length; index++) {
                res = line[index] >= 0 ? res + 1 : res - 1;
            }
            if (res == 0) {
                System.out.println(Arrays.toString(line));
            }
        }
 
    }
}
1
0 / 0 / 0
Регистрация: 22.02.2019
Сообщений: 49
22.02.2019, 22:22  [ТС]
Может кто-глянуть там где else else {
System.out.printf( "немає такого рядка, щоб була рівна кількість додатніх та від'ємних елементів\n", 0);
}
оно почемуто там не работает???
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
import javax.swing.JOptionPane;
 
public class A {
    public static void main(String[] args) {
        int[][] array = {
                {3, 1, 3, -2},
                {2, 9, 1, 8},
                {1, 3, -3, 4},
                {8, -1, -1, 8}};
        for (int i= 0; i < array[0].length; i++) {
            int positive = 0, negative = 0;
            for (int j = 0; j < array.length; j++) {
                if (array[i][j] > 0)
                    positive++;
                else  negative++;
            }
            if (positive == negative) {
                System.out.printf("В рядку %d рівна кількість додатніх та від'ємних елементів\n", i+1);
                break;
                else  { 
                    System.out.printf( "немає такого рядка, щоб була рівна кількість додатніх та від'ємних елементів\n", 0);
                }
                    
                }
            }
        }
    }
0
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
22.02.2019, 22:44
Добавлено через 36 секунд
была лишняя фигурная скобка и слева от else забыта скобка фигурная

Добавлено через 1 минуту
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
public class A {
    public static void main(String[] args) {
        int[][] array = {
                {3, 1, 3, -2},
                {2, 9, 1, 8},
                {1, 3, -3, 4},
                {8, -1, -1, 8}};
        for (int i = 0; i < array[0].length; i++) {
            int positive = 0, negative = 0;
            for (int j = 0; j < array.length; j++) {
                if (array[i][j] > 0)
                    positive++;
                else negative++;
            }
            if (positive == negative) {
                System.out.printf("В рядку %d рівна кількість додатніх та від'ємних елементів\n", i + 1);
                break;
            } else {
                System.out.printf("немає такого рядка, щоб була рівна кількість додатніх та від'ємних елементів\n", 0);
            }
 
        }
    }
}
0
0 / 0 / 0
Регистрация: 22.02.2019
Сообщений: 49
22.02.2019, 22:48  [ТС]
теперь оно работает не правильно(((((
0
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
22.02.2019, 22:49
а что нужно рассмотреть? столбец или строку?
1
0 / 0 / 0
Регистрация: 22.02.2019
Сообщений: 49
22.02.2019, 22:50  [ТС]
строку
0
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
22.02.2019, 22:53
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
public class A {
    public static void main(String[] args) {
        int[][] array = {
                {3, 1, 3, -2},
                {2, 9, 1, 8},
                {1, 3, -3, 4},
                {8, -1, -1, 8}};
 
        //если рассматриваем столбец, то i < array[0].length
        //если строку, то i < array.length
        for (int i = 0; i < array.length; i++) {
            //тут можно обойтись одной переменной. если положительное число, прибавлять к ней, если отрицательное
            //убавлять. И при равенстве чисел будет 0
            int count = 0;
            //если рассматриваем столбец, то j < array.length
            //если строку, то j < array[i].length
            for (int j = 0; j < array[i].length; j++) {
                if (array[i][j] > 0) {
                    count++;
                } else {
                    count--;
                }
            }
            
            //тут break не нужен
            if (count == 0) {
                System.out.printf("В рядку %d рівна кількість додатніх та від'ємних елементів\n", i + 1);
            } else {
                System.out.printf("немає такого рядка, щоб була рівна кількість додатніх та від'ємних елементів\n", 0);
            }
 
        }
    }
}
0
0 / 0 / 0
Регистрация: 22.02.2019
Сообщений: 49
22.02.2019, 22:58  [ТС]
Просто тогда в консоле показано ето:
немає такого рядка, щоб була рівна кількість додатніх та від'ємних елементів
немає такого рядка, щоб була рівна кількість додатніх та від'ємних елементів
немає такого рядка, щоб була рівна кількість додатніх та від'ємних елементів
В рядку 4 рівна кількість додатніх та від'ємних елементів
а мне нужно либо ето, либо, но не вместе
0
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
22.02.2019, 23:06
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
public class A {
    public static void main(String[] args) {
        int[][] array = {
                {3, 1, 3, -2},
                {2, 9, 1, 8},
                {1, 3, -3, 4},
                {8, -1, -1, 8}};
 
        int index = -1;
        //если рассматриваем столбец, то i < array[0].length
        //если строку, то i < array.length
        for (int i = 0; i < array.length; i++) {
            //тут можно обойтисьодной переменной. если положительное число, прибавлть к ней, если отрицательное
            //убавлять. И при равенстве чисел будет 0
            int count = 0;
            //если рассматриваем столбец, то j < array.length
            //если строку, то j < array[0].length
            for (int j = 0; j < array[i].length; j++) {
                if (array[i][j] > 0) {
                    count++;
                } else {
                    count--;
                }
            }
 
            if (count == 0) {
                index = i;
                break;
            }
        }
 
        if (index != -1) {
            System.out.printf("В рядку %d рівна кількість додатніх та від'ємних елементів\n", index + 1);
        } else {
            System.out.printf("немає такого рядка, щоб була рівна кількість додатніх та від'ємних елементів\n", 0);
        }
    }
}
Добавлено через 17 секунд
Что изменилось по итогу:
1. добавили переменную index, которой присваиваем любое число, которое не может быть индексом массива. Отрицательное идеально подходит
2. затем циклами проверяем элементы по строкам и если находим нужную строку, присваиваем index индекс этой строки и бреком выходим из цикла
3. за циклом проверяем, остался ли индекс присвоенным числом по умолчанию, что значит строка не найдена либо индекс массива с нужной строкой
0
0 / 0 / 0
Регистрация: 22.02.2019
Сообщений: 49
22.02.2019, 23:10  [ТС]
Вы очень помогли, спасибо большое)))
0
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
22.02.2019, 23:11
нзч. Удачи в обучении!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.02.2019, 23:11
Помогаю со студенческими работами здесь

Определить, есть ли в данном массиве столбец, в котором равное количество положительных и отрицательных элементов
Помогите плииз) 1. Дан двумерный массив размером n*m, заполненный случайными числами. Определить, есть ли в данном массиве столбец, в...

Определить, есть ли в данном массиве столбец, в котором равное количество положительных и отрицательных элементов
Дан двумерный массив размером n*m, заполненный случайными числами. Определить, есть ли в данном массиве столбец, в котором равное...

Нужно определить, есть ли в двумерном массиве столбец, в котором равное количество положительных и отрицательных элементов
Нужно определить, есть ли в двумерном массиве столбец, в котором равное количество положительных и отрицательных элементов и вывести их...

Массив: Определить есть ли в данном массиве столбец, в котором равное количество положительных и отрицательных элементов.
Дан двумерный массив размером NxM, заполненный случайными числами. Определить есть ли в данном массиве столбец в котором равное количество...

Двумерный массив. Определить, есть ли в данном массиве столбец, в котором равное количество положительных и отрицательных элементов
Условие задачи следующее: Дан двумерный массив размером nхm, заполненный случайными числами. Определить, есть ли в данном массиве столбец,...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru