Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
 Аватар для hoot
101 / 22 / 7
Регистрация: 10.11.2010
Сообщений: 208

Проверка двух массивов на совпадение знаков чисел

13.12.2017, 23:51. Показов 2053. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Просьба проверить код.
Возможно есть возможность оптимизировать?
Программа сравнивает знаки двух массивов с рендомными числами, на совпадение знаков.
Если знаки совпадают в массив , в элементах с одинаковым порядковым номером, ставится 1 , а в противном случае ставится 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
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
import java.util.Random;
import java.util.Scanner;
 
public class Array_1 {
 
    public static void main(String[] args){
 
        Scanner scan = new Scanner(System.in);
 
        System.out.print("Введите кол-во строк массива: ");
        int n = scan.nextInt();
        System.out.print("Введите кол-во столбцов");
        int m = scan.nextInt();
 
        int[][] mas1 = new int[n][m];
        int[][] mas2 = new int[n][m];
        int[][] res  = new int[n][m];
 
 
        Random rnd = new Random();
 
        for (int i = 0; i < n; i++) {
            System.out.println("");
            for (int j = 0; j< m; j++) { 
                if((rnd.nextInt(24)-12)==0)
                    mas1[i][j] = 1+(rnd.nextInt(24)-10);
                else
                    mas1[i][j] = rnd.nextInt(24)-10;
                System.out.print(mas1[i][j] + " ");}
        }
 
        System.out.println(" ");
 
        for (int i = 0; i < n; i++) {
            System.out.println();
            for (int j = 0; j< m; j++) {
            if((rnd.nextInt(24)-12)==0)
               mas2[i][j] = 1+(rnd.nextInt(24)-10);
            else
               mas2[i][j] = rnd.nextInt(24)-10;
            System.out.print(mas2[i][j] + " ");}
        }
 
         System.out.println(" ");
         System.out.println(" ");
        System.out.print("Результат сравнения матриц:");
         for (int i = 0; i < n; i++) {
             System.out.println();
             for (int j = 0; j < m; j++) {
                  if (mas1[i][j] >0 && mas2[i][j]>0 || mas1[i][j] <0 && mas2[i][j]<0) {
                      res[i][j] = 1;
                  }
                  else{
                      res[i][j] = 0;
                  }
                 System.out.print(res[i][j]);
             }
         }
 
 
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.12.2017, 23:51
Ответы с готовыми решениями:

Сравнение значений двух массивов на совпадение
есть два массива, данные для массива беруться из бд, для наглядности я написал не переменные, в которые записываются данные из базы, а...

Проверка двух списков на совпадение
Привет. Помогите плиз решить задачу на прологе: даны два числовых списка и надо проверить их, одинаковые они или нет(длина списка и все ли...

Проверка данных на совпадение двух условий
Добрый день. Прошу помочь решить проблему или дать ссылку на тему, если она уже рассматривалась. Во вложение файл с описанием задачи....

2
4 / 4 / 2
Регистрация: 23.12.2016
Сообщений: 124
14.12.2017, 19:58
А что делают эти строчки?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
                if((rnd.nextInt(24)-12)==0)
                    mas1[i][j] = 1+(rnd.nextInt(24)-10);
else
                    mas1[i][j] = rnd.nextInt(24)-10;
                System.out.print(mas1[i][j] + " ");
 
 
if (mas1[i][j] >0 && mas2[i][j]>0 || mas1[i][j] <0 && mas2[i][j]<0) {
                      res[i][j] = 1;
                  }
                  else{
                      res[i][j] = 0;
                  }
0
 Аватар для Aviz__
2748 / 2056 / 508
Регистрация: 17.02.2014
Сообщений: 9,483
15.12.2017, 11:05
hoot, зачем вы все пишите в 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
99
100
101
102
public class CyberForum {
    private static int [][] arrForWork;
 
    private static int getRndValue(int lowLim ,int hightLim){
        long lengRet;
        do {
            lengRet = Math.round(Math.random()*hightLim);
        }while (lengRet < lowLim);
        return (int)lengRet;
    }
 
 
    private static void fillArrOnlyPositivRndValue(int[][] arrTarget, int minVal, int maxVal) {
        for (int i = 0; i < arrTarget.length; i++) {
            for (int j = 0; j < arrTarget[0].length; j++) {
                arrTarget[i][j] = getRndValue(minVal,maxVal);
            }
        }
    }
 
    private static void addInArrNegativRndValue(int[][] arrTarget) {
        int rowRnd, colRnd;
        for (int k = 0; k < arrTarget.length * arrTarget[0].length / 2; k++) {
            rowRnd = (int)Math.round(Math.random()*(arrTarget.length - 1));
            colRnd = (int)Math.round(Math.random()*(arrTarget[0].length - 1));
            arrTarget[rowRnd][colRnd] = -1*arrTarget[rowRnd][colRnd];
        }
    }
 
    private static void printValueArr(int[][] arrTarget){
        for (int [] row : arrTarget) {
            for (int val : row)
                System.out.printf("%4d",val);
            System.out.println();
        }
    }
 
    private static int [] getColumn(int[][] arrTarget, int numberColumn) {
        int [] forRet = new int[arrTarget.length];
        for (int i = 0; i < arrTarget.length; i++) {
            forRet[i] = arrTarget[i][numberColumn];
        }
        return forRet;
    }
 
    private static boolean isUnicColumn(int[] anColomn, int[] otherColumn){
        for (int i = 0; i < anColomn.length; i++) {
            for (int j = 0; j < otherColumn.length; j++) {
                if(anColomn[i] == otherColumn[j])
                    return false;
            }
        }
        return true;
    }
 
    private static void replaceMaxValue(int[][] arrTarget){
        int tmpValue = Integer.MIN_VALUE;
        int [] indexMaxVal = {-1,-1};
        for (int i = 0; i < arrTarget.length; i++) {
            for (int j = 0; j < arrTarget[0].length; j++) {
                if (arrTarget[i][j] > tmpValue){
                    tmpValue = arrTarget[i][j];
                    indexMaxVal[0] = i;
                    indexMaxVal[1] = j;
                }
            }
        }
        if (indexMaxVal[0] != -1)
            arrTarget[indexMaxVal[0]][indexMaxVal[1]] = 11;
    }
 
    public static void main(String[] args) {
        int row = 3;
        int col = 4;
        arrForWork = new int[row][col];
        int minVal = 1;
        int maxVal = 9;
        fillArrOnlyPositivRndValue(arrForWork,minVal,maxVal);
        addInArrNegativRndValue(arrForWork);
        replaceMaxValue(arrForWork);
        System.out.println("Исходный массив:");
        printValueArr(arrForWork);
        int [] nonUnicColomn = new int[col];
        for (int firstCl = 0; firstCl < col; firstCl++) {
            for (int otherCl = firstCl + 1; otherCl < col; otherCl++) {
                if (!isUnicColumn(getColumn(arrForWork, firstCl), getColumn(arrForWork, otherCl))) {
                    nonUnicColomn[firstCl]++;
                    nonUnicColomn[otherCl]++;
                    break;
                }
            }
        }
        int flagUnic = 0;
        for (int i = 0; i < nonUnicColomn.length; i++)
            if (nonUnicColomn[i] == 0) {
                flagUnic++;
                System.out.printf("столбец %d уникален\n", i);
            }
        if (flagUnic == 0)
            System.out.println("столбцов с уникальными значениями нет");
    }
}
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.12.2017, 11:05
Помогаю со студенческими работами здесь

Проверка двух input полей на совпадение
Салам всем!!! Мне нужна помощь! Помогите! У меня будет два input поля. Если пользователь вводить сюда данные то надо проверить эти поля,...

Проверка массива на совпадение чисел
Вообщем у нас есть массив. К примеру int myArray = new int ; Он заполняется элементами for (int i = 0,j = 0; j &lt;...

Проверка чисел на совпадение цифр между ними
Помогите! Нужно вводить в консоли два числа а программа ищет совпадения (какие цифры совпали) За ранее спасибо...

Проверка в цикле на совпадение заданного значения со значением генератора случайных чисел
Здравствуйте!!! Подскажите, как реализовать вот это 1. вводим в контрол на форме, например 5чисел(16-4-30-1-31) 2. записываем эти...

Проверка равенства двух массивов
пожалуйста помогите мне с заданием(( Определить булевскую функцию, проверяющую на равенство два массива. Массивы считаются в данном...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru