Форум программистов, компьютерный форум 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Эксперт С++
4168 / 1816 / 198
Регистрация: 20.02.2013
Сообщений: 4,953
Записей в блоге: 21
23.08.2014, 23:27
Цитата Сообщение от Ксения love Посмотреть сообщение
можете пожалуйста дописать значения остальных
Ну раз уж, как говорится, взялся за гуж, и раз уж Вы объявились (а то я в какой-то момент начал уж думать, что Вы к теме потеряли интерес), то вот Вам комментарии к пятой функции:
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
//===================================  5  ======================================
// Определение функции find_value(). Назначение функции - искать заданное
// значение в матрице. Функция принимает четыре аргумента -
// указатель на матрицу типа int, две целочисленные переменные,
// задающие размерность матрицы и переменную int value, с помощью которой
// в функцию передаётся значение, которое и будем искать.
// Возвращаемое значение отсутствует.
void find_value(int** matrix, int n, int m, int value)
{
// Если память для матрицы не выделена (матрица не существует) или если
// в матрице нет значений (точнее, если вместо значений - нули), то
    if ((matrix==NULL)||(n==0)||(m==0))
        printf("First_create_a_matrix");    //вывести на экран сообщение
        
    else    // иначе
    {
        int find = 0;   // создаём счётчик "найдёнышей"
        
        int index = 0;  // индекс "рядов" (rows) матрицы variable
        
        int** variable; // создаём матрицу, которая будет хранить индексы
                        // найденных совпадений с нашим "поисковым запросом"
                        
    // Пробегаем по матрице matrix двумя вложенными циклами for:
        for (int i=0; i<n; i++)
            for (int j = 0; j<m; j++)
    // Если какое-то значение совпадает с нашим "поисковым запросом" (то есть
    // с значением переменной value)               
                if (matrix[i][j] == value)
                    find++; // то увеличить счётчик найденных совпадений
 
    // Создадим матрицу, в которую сложим всех найдёнышей. Размер матрицы
    // будет завязан, соответственно, на количество найденных совпадений (то
    // есть, на значение переменной find. Выделяем память под массив variable:
        variable = (int**)malloc(sizeof(int*)*find);
        
    // А раз у нас variable - это массив массивов (матрица), выделяем память
    // под каждый так сказать "субмассив":
        for (int i=0; i<find; i++)
            variable[i] = (int*)malloc(sizeof(int)*2);
            
    // Складываем всех найдёнышей в матрицу variable:
        for (int i=0; i<n; i++)
            for (int j=0; j<m; j++)
                if (matrix[i][j] == value)
                {
                    variable[index][0] = i;
                    variable[index][1] = j;
                    index++;
                }
    // Выводим на экран результаты поиска (всех "найдёнышей"):
        for (int i=0; i<find; i++)
            printf("n=%d,m=%d\n",variable[i][0],variable[i][1]);
    }
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru