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

Проверьте лабораторную - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ ОШибка в коде. http://www.cyberforum.ru/cpp-beginners/thread30515.html
#include <iostream> using namespace std; int main() { double sum=1.0; double term=0; double eps; int power=1; printf("Enter Epsilon"); scanf("% if"& eps);
C++ Функция для поиска максимального числа в матрице, которое встречается более одного раза Функция для поиска максимального числа в матрице, которое встречается более одного раза. Спасибо!!! Добавлено через 1 час 12 минут 45 секунд задана матрица SUS http://www.cyberforum.ru/cpp-beginners/thread30508.html
vector и list C++
Есть база объектов: студенты, преподы, аспиранты... Каждому объекту присвоены значения (общие- возраст, имя, мейл- и специфические для каждого подкласса -курс для студента, кафедра для аспиранта, и...
Выход из консоли по нажатию клавиши C++
Что надо вставить, что бы по нажатию клавиши, скажем, <Enter> произошел выход из консольной программы.
C++ Борьба за кириллицу в MS Visual C++ 6.0 http://www.cyberforum.ru/cpp-beginners/thread30486.html
Для того, что бы выводились символы русского алфавита я знаю такой метод: #include <iostream.h> #include <windows.h> // для CharToOem int main() { char str = "Русский текст"; ...
C++ Вопрос по оператору cin Компилятор Microsoft Visual C++ 6.0. При использовании оператора cin, после того как вводишь значение, происходит автоматический перенос на следующую строку (так ведь?). Как от этого избавиться? Я... подробнее

Показать сообщение отдельно
rar14
28 / 22 / 1
Регистрация: 14.04.2009
Сообщений: 448

Проверьте лабораторную - C++

18.04.2009, 03:33. Просмотров 477. Ответов 1
Метки (Все метки)

Вот, сделал первое задание. Если не составит труда, то проверьте пожалуйста. Я максимально понятно там все прокомментировал. Посмотрите, что можно улучшить или что исправить, какие-нибудь пожелания...

Вот задание:
Разработать программу, которая вводит целочисленную матрицу из n строк и m столбцов (1<n<=100, 1<m<=50), выводит исходную матрицу, упорядочивает элементы матрицы и выводит матрицу после ее упорядочивания. Упорядочить все элементы матрицы таким образом, чтобы при чтении матрицы по строкам ее элементы образовывали отсортированный по убыванию массив. Алгоритмы ввода, вывода и упорядочивания матрицы оформить в виде функций с параметрами.


Решение:

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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#include <iostream.h>
 
// Протопиты функций
void InputDimensionOfMatrix  (int& n, int& m);
void InputElementsOfMatrix   (int** matrix, int n, int m);
void PrintMatrix             (int** matrix, int n, int m);
void SortMatrix              (int** matrix, int n, int m);
 
 
 
int main() {
 
    int N; // Количество строк матрицы
    int M; // Количество столбцов матрицы
 
    int i; // Итератор
 
 
    // Ввод размерности матрицы
    InputDimensionOfMatrix(N, M);
 
 
    // Создаем динамический двумерный массив
    int **matrix;
    matrix = new int *[N];
    if (!matrix) {
        cout << "Error: dynamic array is not created" << "\n";
        return 0;
    }
    for (i = 0; i < N; i++) {
        matrix[i] = new int [M];
        if (!matrix[i]) {
            cout << "Error: dynamic array is not created" << "\n";
            return 0;
        }
    }
 
 
 
    // Ввод элементов матрицы с клавиатуры
    InputElementsOfMatrix(matrix, N, M);
 
    // Вывод матрицы на дисплей
    cout << "Matrix " << N << "x" << M << ":" << "\n\n";
    PrintMatrix(matrix, N, M);
 
    // Cортировка элементов строк матрицы по убыванию
    SortMatrix(matrix, N, M);
 
    // Вывод отсортированной матрицы на дисплей
    cout << "Matrix " << N << "x" << M << " after sorting:" << "\n\n";
    PrintMatrix(matrix, N, M);
 
    // Удаление динамического массива
    for (i = 0; i < N; i++) delete matrix[i];
    delete [] matrix;
 
 
 
    // Конец программы
    return 0;
 
} // END OF MAIN
 
 
 
 
void InputDimensionOfMatrix(int& n, int& m) {
    cout << "Input matrix dimension NxM:" << "\n\n";
    cout << "2 <= N <= 100" << "\n";
    cout << "2 <= M <= 50"  << "\n\n";
    while (1) {
        cout << "\t" << "N = ";
        cin >> n;
        if ((n > 1) && (n <= 100)) break;
        cout << "\t" << "Error: matrix dimension for N must be 2 to 100" << "\n";
    }
    while (1) {
        cout << "\t" << "M = ";
        cin >> m;
        if ((m > 1) && (m <= 50)) break;
        cout << "\t" << "Error: matrix dimension for M must be 2 to 50" << "\n";
    }
    cout << "\n\n\n";
} // END OF FUNCTION
 
 
void InputElementsOfMatrix(int** matrix, int n, int m) {
    for (int i = 0; i < n; i++) {
        cout << "ROW " << (i + 1) << ">" << "\n"; 
        for (int j = 0; j < m; j++) {
            cout << "\t" << "COL " << (j + 1) << ":" << "\t";
            cin >> matrix[i][j];
        }
        cout << "\n\n";
    }
    cout << "\n\n";
} // END OF FUNCTION
 
 
void PrintMatrix(int** matrix, int n, int m) {
    for (int i = 0; i < n; i++) {
        cout << "\t" << "ROW " << (i + 1) << "> ";
        for (int j = 0; j < m; j++) cout << "\t" << matrix[i][j];
        cout << "\n";
    }
    cout << "\n\n";
} // END OF FUNCTION
 
 
void SortMatrix(int** matrix, int n, int m) {
    int buffer;
    for (int i = 0; i < n; i++)
    for (int j = 0; j < m; j++)
    for (int k = j + 1; k < m; k++)
        if (matrix[i][j] < matrix[i][k]) {
            buffer = matrix[i][j];
            matrix[i][j] = matrix[i][k];
            matrix[i][k] = buffer;
        }
} // END OF FUNCTION
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru