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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Составить программу на языке С++ для обработки одномерных массивов с использованием указателей http://www.cyberforum.ru/cpp-beginners/thread1201596.html
Составить программу на языке С++ для обработки одномерных массивов с использованием указателей: 1. .Ввести n элементов одномерного массива; 2. Вычислить указанное выражение; 3 Вывести на экран...
C++ Как искать функции, работающие с определенным типом? Всем привет! Сейчас у меня типичная нудная задача: создать строку wchar_t, конвертировать цифру из int в wchar_t, затем склеить две строки вместе в одну. Мой вопрос не в том как это сделать... http://www.cyberforum.ru/cpp-beginners/thread1201558.html
C++ Принцип работы программы
Смысл программы: подсчет количества слов и предложений из подключенного файла. Код есть, только не понимаю, почему подсчет слов (s) идет после вывода в файл данных и при этом считает правильно. Мне...
Ввести с клавиатуры вещественную матрицу размерностью 5x5. Определить C++
Ввести с клавиатуры вещественную матрицу размерностью 5x5. Определить: а) максимальный элемент на главной диагонали; б) сумму модулей элементов, расположенных выше главной диагонали; в) среднее...
C++ Инициализировать вектор unique_ptr http://www.cyberforum.ru/cpp-beginners/thread1201535.html
Как инициализировать вектор unique_ptr? std::unique_ptr<int> a(nullptr); std::unique_ptr<int> b(nullptr); std::vector<std::unique_ptr<int>>my_vector; my_vector.push_back(std::move(a));...
C++ Хорошо ли использовать унарный плюс вместо функции получения модуля? Если нет, то почему? ... подробнее

Показать сообщение отдельно
Kerry_Jr
Модератор
Эксперт PHP
2206 / 2002 / 701
Регистрация: 14.05.2014
Сообщений: 5,865
Записей в блоге: 1
Завершенные тесты: 5
07.06.2014, 04:28
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
#include <iostream>
#include <iomanip>
 
void sort_matrix(int **matrix, int n)
{
    int temp;
    for (int i = 0; i < n; i++)
    {   
        for (int j = 0; j < n; j++)
        {   
            for (int k = 0; k < n; k++)
            {
                if (i % 2 != 0)
                {   
                    if (matrix[j][i] > matrix[k][i])
                    {
                        temp = matrix[j][i];
                        matrix[j][i] = matrix[k][i];
                        matrix[k][i] = temp;
                    }
                }
                else
                {
                    if (matrix[j][i] < matrix[k][i])
                    {
                        temp = matrix[j][i];
                        matrix[j][i] = matrix[k][i];
                        matrix[k][i] = temp;
                    }
                }
            }
        }
    }
} 
 
int main()
{
    setlocale(LC_ALL, "");
    
    int n;
    std::cout << "Введите размер матрицы: ";
    std::cin >> n;
    int ** matrix = new int*[n];
    std::cout << "Введите значения матрицы:" << std::endl;
    for (int i = 0; i < n; i++)
    {
        matrix[i] = new int[n];
        for (int j = 0; j < n; j++)
            std::cin >> matrix[i][j];
    }
    sort_matrix(matrix, n);
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
            std::cout << std::setw(3) << matrix[i][j];
        std::cout << std::endl;
    }
    for (int i = 0; i < n; i++)
        delete[] matrix[i];
    delete[] matrix;
    return 0;
}
Добавлено через 1 час 45 минут
Не обратил внимание на то, что нужно с указателями
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
#include <iostream>
#include <iomanip>
 
void sort_matrix(int **matrix, int n)
{
    int temp;
    for (int i = 0; i < n; i++)
    {   
        for (int j = 0; j < n; j++)
        {   
            for (int k = 0; k < n; k++)
            {
                if (i % 2 != 0)
                {   
                    if (*(*(matrix+j)+i) > *(*(matrix+k)+i))
                    {
                        temp = *(*(matrix+j)+i);
                        *(*(matrix+j)+i) = *(*(matrix+k)+i);
                        *(*(matrix+k)+i) = temp;
                    }
                }
                else
                {
                    if (*(*(matrix+j)+i) < *(*(matrix+k)+i))
                    {
                        temp = *(*(matrix+j)+i);
                        *(*(matrix+j)+i) = *(*(matrix+k)+i);
                        *(*(matrix+k)+i) = temp;
                    }
                }
            }
        }
    }
}
 
int main()
{
    setlocale(LC_ALL, "");
    
    int n, **matrix;
    std::cout << "Введите размер матрицы: ";
    std::cin >> n;
    matrix = new int*[n];
    std::cout << "Введите значения матрицы:" << std::endl;
    for (int i = 0; i < n; i++)
    {
        matrix[i] = new int[n];
        for (int j = 0; j < n; j++)
            std::cin >> *(*(matrix+i)+j);
    }
    sort_matrix(matrix, n);
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
            std::cout << std::setw(3) << *(*(matrix+i)+j);
        std::cout << std::endl;
    }
    
    return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru