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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
vikky
0 / 0 / 0
Регистрация: 07.10.2014
Сообщений: 41
#1

Динамический массив с использованием указателей - C++

19.11.2014, 18:54. Просмотров 340. Ответов 1
Метки нет (Все метки)

Дан двумерный массив целых чисел размером , где m и n – заданные натуральные числа. Если в массиве есть такие две строки, что все элементы одного из них являются делителями всех элементов другого, поменять их местами (при наличии нескольких вариантов, рассматривать первые из найденных строк). Если подобных строк нет, выдать соответствующее сообщение. Воспользоваться динамическими массивами и продемонстрировать работу с указателями.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2014, 18:54     Динамический массив с использованием указателей
Посмотрите здесь:

Динамический массив указателей - C++
Нужен массив указателей на тип родительского класса Game, как его правильно оформить? То что я написал выдает ошибку. #include...

Динамический массив указателей - C++
Чегото не пойму такое вообще возможно? Странно, что при объявлении можно не указывать размерность: int *a; Но как потом память выделять...

Динамический массив указателей - C++
есть вот такой массив. void* pppribarray = { NULL, NULL, NULL, NULL }; каждый его элемент это указатель на разные пользовательские типы...

Динамический массив указателей - C++
Есть класс "блока" - MapBuilderClass::BlockClass. Надо создать массив из MapBuilderClass::BlockClass* (из указателей на "блок"), изменять...

Динамический массив указателей на объекты - C++
вообщем была тут на форуме задача, в подробности вдаваться не буду, смысл сейчас заключается в том, чтобы создавать в цикле объекты, и в их...

Динамический массив указателей на структуру - C++
Не могу понять как выделить место под динамический массив указателей на структуру с помощью new. Все верно делаю? int lol = 1024; ...

Создать динамический массив указателей - C++
Создать динамический массив указателей для сохранения двумерного массива А в динамической памяти. Составить программу для подсчета...

Создайте динамический массив указателей на структуры - C++
Задача: дана структура struct Sample { char c; double x; int *p; }; Создайте динамический массив указателей на...

Динамический массив указателей на объекты класса - C++
Добрый вечер! Нужна помощь У меня имеется класс STROKA(вроде уже готовый,и все хорошо) Только вот никак не могу понять, как создать...

Как сделать динамический массив из указателей? - C++
Всем привет! Как сделать динамический массив я знаю,и как сделать массив из указателей я знаю,а как сделать динамический массив из...

Выделить память под динамический массив указателей - C++
Нужно выделить память вот под такое дело. Для примера n=5 . Ничего нагуглить так и не смог :( что есть : #include "stdafx.h" ...

Отсортировать динамический массив указателей на структуру (по номеру группы) - C++
Считайте все записи из файла "6.dat". Для чтения каждой отдельной записи осуществите динамический захват памяти. Предполагается, что к-во...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nosey
1344 / 395 / 107
Регистрация: 22.10.2014
Сообщений: 860
Завершенные тесты: 2
19.11.2014, 23:30     Динамический массив с использованием указателей #2
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
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
#include <iostream>
#include <locale>
#include <fstream>
#include <iomanip> 
 
int main()
{
    std::ifstream in("input.txt");
    std::streambuf *cinbuf = std::cin.rdbuf();
    std::cin.rdbuf(in.rdbuf());
 
    std::locale::global(std::locale(""));
 
    int m, n;
    std::cout << "Введите размерность массивов (M и N)" << std::endl;
    std::cin >> m >> n;
    int *mas = new int[m * n];
    int *masAfterEnd = mas + m*n;
    std::cout << "Введите значения массива построчно" << std::endl;
    for (int *value = mas; value < masAfterEnd; ++value)
    {
        std::cin >> *value;
    }
 
    std::cout << "---------------" << std::endl;
    for (int *value = mas, i = 1; value < masAfterEnd; ++value, ++i)
    {
        std::cout << std::setw(3) << *value;
        if (i%m == 0) std::cout << std::endl;
    }
 
    bool isDivider;
    for (int i = 0; i < n; ++i)
    {
        for (int j = i+1; j < n; ++j)
        {
            int* row1 = mas + m*i;
            int* row2 = mas + m*j;
            isDivider = true;
            for (int* row1Value = row1, *row2Value = row2; row1Value < (row1 + m) && isDivider; ++row1Value, ++row2Value)
            {
                isDivider &= *row1Value%*row2Value == 0;
            }
            if (!isDivider)
            {
                isDivider = true;
                for (int* row1Value = row1, *row2Value = row2; row1Value < (row1 + m) && isDivider; ++row1Value, ++row2Value)
                {
                    isDivider &= *row2Value%*row1Value == 0;
                }
            }
            if (isDivider)
            {
                // Поменяем местами строки.
                for (int* row1Value = row1, *row2Value = row2; row1Value < (row1 + m) && isDivider; ++row1Value, ++row2Value)
                {
                    int temp = *row1Value;
                    *row1Value = *row2Value;
                    *row2Value = temp;
                }
                goto rowDividerBreakLabel;
            }
        }
    }
 
rowDividerBreakLabel:
 
    if (isDivider)
    {
        std::cout << "---------------" << std::endl;
        for (int *value = mas, i = 1; value < masAfterEnd; ++value, ++i)
        {
            std::cout << std::setw(3) <<*value;
            if (i%m == 0) std::cout << std::endl;
        }
    }
    else
    {
        std::cout << "Делителей не обнаружено" << std::endl;
    }
 
    system("pause");
    return 0;
}
файл input.txt
Код
5 5
10 10 10 10 10
9 9 9 9 9
8 8 8 8 8
7 7 7 7 7
5 5 5 5 5
Yandex
Объявления
19.11.2014, 23:30     Динамический массив с использованием указателей
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru