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

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

22.02.2019, 21:23. Показов 3531. Ответов 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
0 / 0 / 0
Регистрация: 22.02.2019
Сообщений: 49
22.02.2019, 23:12  [ТС]
Студворк — интернет-сервис помощи студентам
А в етом примере можна зделать так что бы значение чисел в масиве менялись?)
0
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
22.02.2019, 23:25
сейчас...сделаю рандомное заполнение

Добавлено через 8 минут
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
import java.util.Arrays;
import java.util.Random;
 
public class A {
    //задаём размер массива 4 на 4
    public static final int DEFAULT_SIZE = 4;
 
    //интервал чисел для заполнения массива от -2 до 2
    public static int minRange = -2;
    public static int maxRange = 2;
 
    public static void main(String[] args) {
        int[][] array = new int[DEFAULT_SIZE][DEFAULT_SIZE];
        Random random = new Random();
 
        //заполняем массив рандомными числами и выводим на экран
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[i].length; j++) {
                array[i][j] = random.nextInt(maxRange - minRange + 1) + minRange;
            }
            System.out.println(Arrays.toString(array[i]));
        }
 
 
 
        int index = -1;
        for (int i = 0; i < array.length; i++) {
            int count = 0;
            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);
        }
    }
}
0
0 / 0 / 0
Регистрация: 22.02.2019
Сообщений: 49
22.02.2019, 23:36  [ТС]
вы просто волшебник, успехов вам)))
0
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
22.02.2019, 23:37
и Вам удачки!
0
0 / 0 / 0
Регистрация: 22.02.2019
Сообщений: 49
23.02.2019, 00:00  [ТС]
Можна, еще спросить одно, как сделать так, что бы нули не считали ни туда ни туда?
0
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
23.02.2019, 01:17
в строке 30 поменять вот это:
Java
1
2
3
4
5
if (array[i][j] >= 0) {
                    count++;
                } else {
                    count--;
                }
на:
Java
1
2
3
4
5
if (array[i][j] > 0) {
                    count++;
                } else if (array[i][j] < 0) {
                    count--;
                }
Добавлено через 6 минут
даже лучше вот так всё сделать, чтоб если массив будет из нулей всех, не считал это правильным:

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;
import java.util.Random;
 
public class A {
    public static final int DEFAULT_SIZE = 4;
    public static int minRange = -2;
    public static int maxRange = 2;
 
    public static void main(String[] args) {
        int[][] array = new int[DEFAULT_SIZE][DEFAULT_SIZE];
        Random random = new Random();
 
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[i].length; j++) {
                array[i][j] = random.nextInt(maxRange - minRange + 1) + minRange;
            }
            System.out.println(Arrays.toString(array[i]));
        }
        
        int index = -1;
        for (int i = 0; i < array.length; i++) {
            int positive = 0;
            int negative = 0;
            for (int j = 0; j < array[i].length; j++) {
                if (array[i][j] > 0) {
                    positive++;
                } else if (array[i][j] < 0) {
                    negative++;
                }
            }
            if (positive == negative && positive != 0) {
                index = i;
                break;
            }
        }
 
        if (index != -1) {
            System.out.printf("В рядку %d рівна кількість додатніх та від'ємних елементів\n", index + 1);
        } else {
            System.out.printf("немає такого рядка, щоб була рівна кількість додатніх та від'ємних елементів\n", 0);
        }
    }
}
Добавлено через 1 минуту
и размер массив можете менять... это я задал 4, как и диапазон рандомных чисел (установлено от -2 до 2.
меняйте на какие хотите, только размер должен быть положительным

Добавлено через 32 минуты
на самом деле в методе main не стоит производить решения. Это не красивый код...

каждая задача делится на методы... вывод - один метод, создание - другой... в main просто их вызываем

вот более менее смотрибельный код:
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
import java.util.Arrays;
import java.util.Random;
 
public class A {
    //кол-во строк в массиве.
    private static final int HEIGHT = 4;
 
    //кол-во столбцов в массиве.
    private static final int WEIGHT = 4;
 
    //диапазон чисел для рандомной генерации.
    private static int minRange = -2;
    private static int maxRange = 2;
 
    /**
     * Метод создаёт двумерный массив, заполненый рандомными числами в диапазоне.
     *
     * @param height - высота массива; (кол-во строк);
     * @param weight - ширина массива (кол-во столбцов);
     * @param minRange - минимальное число для рандома;
     * @param maxRange - максимальное число для рандома;
     * @return возвращает двумерный массив;
     */
    private static int[][] createDeepArray(int height, int weight, int minRange, int maxRange) {
        int[][] deepArray = height > 0 && weight > 0 ? new int[height][weight] : new int[0][0];
        Random random = new Random();
        for (int i = 0; i < deepArray.length; i++) {
            for (int j = 0; j < deepArray[i].length; j++) {
                deepArray[i][j] = random.nextInt(maxRange - minRange + 1) + minRange;
            }
        }
        return deepArray;
    }
 
    /**
     * Метод печатает двумерный массив в консоль.
     *
     * @param deepArray - массив для печати;
     */
    private static void printDeepArray(int[][] deepArray) {
        if (deepArray != null) {
            for (int[] line : deepArray) {
                System.out.println(Arrays.toString(line));
            }
        }
    }
 
    /**
     * Метод ищет строки в двумерном массиве, в которых отриц. и полож. чисел одинаково.
     *
     * @param deepArray - массив для поиска;
     * @return массив индексов строк двумерного массива;
     */
    private static int[] getLineArray(int[][] deepArray) {
        int[] result = deepArray != null ? new int[deepArray.length] : new int[0];
        int amount = 0;
        for (int i = 0; i < deepArray.length; i++) {
            int positive = 0;
            int negative = 0;
            for (int j = 0; j < deepArray[i].length; j++) {
                if (deepArray[i][j] > 0) {
                    positive++;
                } else if (deepArray[i][j] < 0) {
                    negative++;
                }
            }
            if (positive == negative && positive != 0) {
                result[amount++] = i;
            }
        }
        result = Arrays.copyOf(result, amount);
        return result;
    }
 
    /**
     * Метод печатает результат в консоль.
     *
     * @param result - массив индексов;
     */
    private static void printResult(int[] result) {
        if (result != null) {
            if (result.length > 0) {
                for (int index : result) {
                    System.out.printf("В рядку %d рівна кількість додатніх та від'ємних елементів;\n", index + 1);
                }
            } else {
                System.out.println("Hемає такого рядка, щоб була рівна кількість додатніх та від'ємних елементів;");
            }
        }
    }
 
    public static void main(String[] args) {
        int[][] deepArray = createDeepArray(HEIGHT, WEIGHT, minRange, maxRange);
        printDeepArray(deepArray);
        int[] result = getLineArray(deepArray);
        printResult(result);
    }
}
Добавлено через 33 минуты
а если изменить старый код, чтоб он выводил все индексы, где положительных и отрицательных одинаково
либо один раз, что не найдено, то вот код:

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
import java.util.Arrays;
import java.util.Random;
 
public class A {
    public static final int HEIGHT = 4;
    public static final int WEIGHT = 4;
    public static int minRange = -2;
    public static int maxRange = 2;
 
    public static void main(String[] args) {
        int[][] array = new int[HEIGHT][WEIGHT];
        Random random = new Random();
 
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[i].length; j++) {
                array[i][j] = random.nextInt(maxRange - minRange + 1) + minRange;
            }
            System.out.println(Arrays.toString(array[i]));
        }
 
        boolean isAnswer = false;
        for (int i = 0; i < array.length; i++) {
            int positive = 0;
            int negative = 0;
            for (int j = 0; j < array[i].length; j++) {
                if (array[i][j] > 0) {
                    positive++;
                } else if (array[i][j] < 0) {
                    negative++;
                }
            }
            if (positive == negative && positive != 0) {
                System.out.printf("В рядку %d рівна кількість додатніх та від'ємних елементів\n", i + 1);
                isAnswer = true;
            }
        }
 
        if (!isAnswer) {
            System.out.println("немає такого рядка, щоб була рівна кількість додатніх та від'ємних елементів");
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.02.2019, 01:17

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №4)
Maks 15.11.2026
Что-то я перемудрил с предыдущими версиями, в этот раз сделал всё проще, обратившись к функции "СтрокаЛатиницей" из типового общего модуля "СтроковыеФункцииКлиент". В данной функции нет апострофов,. . .
BitTorrent (версия 4.3.9) и Меню Настройки
russiannick 15.11.2026
В меню Настройки можно отключить автоматическое обновление программы. Карта этого меню приложена ниже. Нужный пункт выделен красным. Сервис Настройки Поведение
Транслитерация текста с кириллицы на латиницу (вариант №3)
Maks 15.11.2026
Обновленная версия предыдущей обработки. Изменения коснулись букв: Ъ, Ы, Ь, Э, отображения которых зависят от положения реквизита "Транслитерация имён". Изменено отображение буквы Й. Добавлена. . .
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru