Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Сравнение двумерных матриц - разобрать код - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить загруженность ядер процессора http://www.cyberforum.ru/cpp-beginners/thread1244562.html
Помогите определить загруженность ядер процессора (может как-нибудь получить эти данные из системы).
C++ Стабильный код и xor Доброго времени! Есть такой код:double azim = degrees( atan( s/c )); Проблема в том что c может быть нулём, поэтому вышележащий код быстро превратился в: const double eps = 1e-10; double... http://www.cyberforum.ru/cpp-beginners/thread1244551.html
C++ Нужен справочник по заголовкам и их функциям
Всем привет. Недавно решил научиться программировать на с++ , ранее писал небольшие плагины для игр на pawn. Вроде бы разобрался с синтаксисом и основными моментами, но как написать реальную...
C++ Путаница с sftream и операторами << и >>
Значит так, иду спокойно по книжке по темам "Открытие и закрытие текстовых файлов", а также "Чтение и запись текстовых файлов" и тут я немного запутался. Для того чтобы считать информацию из...
C++ Работа с классами и пересечение их между собой (задача о городах и поездах) http://www.cyberforum.ru/cpp-beginners/thread1244503.html
Здравствуйте. Тут попалась в руки задачка, вкратце суть: Есть города, в каждом городе есть станция, на станции пассажиры, у пасажира есть цель поездки(N - ый город). Между городами ездят...
C++ Чем отличаются по функционалу Kbhit() и _kbhit() Всем привет. Утолите нубское любопытство. Везде (на msdn, как минимум) пишут пользовать _kbhit() и что при этом происходит. Все просто и понятно. Про kbhit() пишут только, что устарел еще во... подробнее

Показать сообщение отдельно
gru74ik
Модератор
Эксперт CЭксперт С++
4185 / 1833 / 198
Регистрация: 20.02.2013
Сообщений: 4,972
Записей в блоге: 21
24.08.2014, 00:11
Цитата Сообщение от gru74ik Посмотреть сообщение
C++
1
2
        int** variable; // создаём матрицу, которая будет хранить индексы
                        // найденных совпадений с нашим "поисковым запросом"
Точнее, создаём указатель на указатель (или, ещё можно сказать - указатель на массив указателей).

Добавлено через 32 минуты
Ну и последняя (шестая) функция:
C++
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
//===================================  6  ======================================
// Определение функции compare(). Назначение функции - сравнивать две матрицы
// и возвращать болшую из них. Функция принимает четыре аргумента -
// указатель на первую матрицу типа int, указатель на вторую матрицу типа int,
// и две целочисленные переменные, задающие размер матриц.
//
// Возвращаемое значение - указатель на указатель на тип int (иными словами,
// указатель на массив указателей). Хитрый трюк, позволяющий, по сути, сделать
// возвращаемым значением матрицу.
//==============================================================================
int** compare(int** matrix, int** matrix2, int n, int m)
{
    // Если память для матрицы не выделена (матрица не существует) или если
    // в матрице нет значений (точнее, если вместо значений - нули)
    if ((matrix==NULL)||(n==0)||(m==0))
    {
        // то вывести на экран сообщение "First_create_a_matrix"
        printf("First_create_a_matrix");
        return NULL;    // Гррррррр >:(
    }
    
    else    // иначе
    {
        // Вызвать функцию create_matrix() и результат её работы присвоить
        // указателю второго уровня matrix3. Проще говоря, создаём третью
        // матрицу (то есть matrix3[n][m]):
        int** matrix3 = create_matrix(n,m,1);
        printf("First_matrix:\n");  // вывод на экран сообщения "Первая матрица:"
        check(matrix,n,m);  // какая-то функция (судя по названию, проверяющая
                            // матрицы по каким-то своим критериям)
        printf("second:\n");    // вывод на экран сообщения "Вторая матрица:"
        check(matrix2,n,m); // проверяем вторую матрицу
        
        // Пробегаем по матрицам двумя вложенными циклами for:
        for (int i=0; i<n; i++)
            for (int j=0; j<m; j++)
            {
                // Если первая матрица больше второй
                if (matrix[i][j] > matrix2[i][j])
                // то копируем первую матрицу в третью 
                    matrix3[i][j] = matrix[i][j]; 
                else
                // иначе,
                    matrix3[i][j] = matrix3[i][j]; // тут ошибка, судя по всему.
                // Скорее всего, должно быть так:
                //  matrix3[i][j] = matrix2[i][j];
            }
        // Вывести сообщение ""The_compare_is_successful"
        printf("The_compare_is_successful\n"); //Сравнение прошло успешно.
        
        // Вернуть указатель на массив указателей matrix3 (то есть 
        // вернуть бОльшую матрицу):
        return matrix3; 
    }
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru