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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Написать программу, определяющий рост учеников, которых больше среднего роста по классу http://www.cyberforum.ru/cpp-beginners/thread1305267.html
Пожалуйста помогите написать программу, определяющий рост учеников, которых больше среднего роста по классу!
C++ Задача с использованием последовательности Дана строка s. Если последовательность {s}_{1},...,{s}_{n} является палиндромом, тоесть {s}_{1}={s}_{n},{s}_{2}={s}_{n-1},...., то оставить ее без изменения, иначе получить последовательность {s}_{1},{s}_{2},....,{s}_{n-1},{s}_{n},{s}_{n-1},...,{s}_{2},{s}_{1} (здесь n – количество символов в исходной строке). %-) http://www.cyberforum.ru/cpp-beginners/thread1305266.html
Сохранить все нулевые элементы, расположенные в верхней части матрицы C++
Всё что было. Разработать способ экономного хранения в памяти разреженных матриц ( таблиц ) , разработать процедуры и функции для обеспечения доступа (чтение - запись) к элементам матрици- . . В контрольном примере обеспечить чтение и запись всех элементов матрицы . Оценить время выполнения операций . Задача Сохранить все нулевые элементы , расположенные в верхней части матрицы .
C++ Сравнение сортировок
Помогите с подсчетом количества сравнений в сортировках. Проблема заключается в том, что количество операций у сортировок практически равны (2450-2550 сранений), при size=100; Можете посмотреть код, правильно ли я расставил счетчик операций. • Сортировка методом четных и нечетных транспозиций. int Sort_Evenandodd(int *arr, int size) { int res; int d=0;
C++ Удаление ребра графа http://www.cyberforum.ru/cpp-beginners/thread1305220.html
Здравствуйте, кто-нибудь здесь сможет объяснить мне, почему функция deleteArc удаляет заданное ребро, даже если его там нет, а вместе с ним заодно и все остальные? Бьюсь с этой программой уже неделю, очень нужна ваша помощь, заранее спасибо. Код программы: #include <iostream> #include <fstream> #include <cstdlib> #include <ctime> #include <math.h>
C++ Задачи по С++ 1) m+--n 2) m++<--n 3) --m>n— 4) 5) 6) а=100, b=0.001 a) Y= + ctg(arctg (x )) Помогите решить 4 и 5, просто ничего путного не выходит подробнее

Показать сообщение отдельно
Nosey
 Аватар для Nosey
1185 / 352 / 102
Регистрация: 22.10.2014
Сообщений: 791
Завершенные тесты: 2
19.11.2014, 23:30     Динамический массив с использованием указателей
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
 
Текущее время: 01:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru