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

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

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

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

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

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

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

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

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

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

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

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

1
Nosey
1349 / 400 / 107
Регистрация: 22.10.2014
Сообщений: 863
Завершенные тесты: 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
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2014, 23:30
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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