SHOW:
|
|
- or go back to the newest paste.
| 1 | #include <stdio.h> | |
| 2 | #include <random> | |
| 3 | #include <ctime> | |
| 4 | #include <locale.h> | |
| 5 | ||
| 6 | #define N 7 | |
| 7 | ||
| 8 | int HowMax(int M[N][N], int max); | |
| 9 | void change(int M[N][N], int max); | |
| 10 | ||
| 11 | int main(void) | |
| 12 | {
| |
| 13 | setlocale(LC_ALL, "Russian"); | |
| 14 | ||
| 15 | int Matrix[N][N]; | |
| 16 | int max = 0; | |
| 17 | ||
| 18 | // Чтобы при каждом запуске генерировались рандомные значения | |
| 19 | srand(time(0)); | |
| 20 | ||
| 21 | printf("\tЛабораторная работа №6\n\n");
| |
| 22 | ||
| 23 | // Заполняем матрицу числами от 1 до 9 и выводим её в консоль | |
| 24 | printf("Изначальная матрица: \n");
| |
| 25 | for (int i = 0; i < 7; i++) | |
| 26 | {
| |
| 27 | for (int j = 0; j < 7; j++) | |
| 28 | {
| |
| 29 | Matrix[i][j] = 1 + rand() % 9; | |
| 30 | printf("%2.d", Matrix[i][j]);
| |
| 31 | } | |
| 32 | printf("\n");
| |
| 33 | } | |
| 34 | ||
| 35 | printf("\n");
| |
| 36 | ||
| 37 | // Узнаем максимальное значение в правом треугольнике | |
| 38 | max = HowMax(Matrix, max); | |
| 39 | ||
| 40 | printf("Максимальное значение в правом треугольнике: %d\n\n", max);
| |
| 41 | ||
| 42 | // Заполняем правый треугольних максимальными значениями | |
| 43 | change(Matrix, max); | |
| 44 | ||
| 45 | // Выводим матрицу после изменений | |
| 46 | printf("Матрица после выполнения алгоритма: \n");
| |
| 47 | for (int i = 0; i < 7; i++) | |
| 48 | {
| |
| 49 | for (int j = 0; j < 7; j++) | |
| 50 | {
| |
| 51 | printf("%2.d", Matrix[i][j]);
| |
| 52 | } | |
| 53 | printf("\n");
| |
| 54 | } | |
| 55 | } | |
| 56 | ||
| 57 | int HowMax(int M[N][N], int max) | |
| 58 | {
| |
| 59 | for (int i = 6; i >= 3; i--) {
| |
| 60 | for (int j = 6; j >= i; j--) | |
| 61 | {
| |
| 62 | if (M[i][j] > max) | |
| 63 | {
| |
| 64 | max = M[i][j]; | |
| 65 | } | |
| 66 | } | |
| 67 | } | |
| 68 | ||
| 69 | for (int i = 2; i >= 0; i--) {
| |
| 70 | for (int j = 6; j >= 6 - i; j--) {
| |
| 71 | if (M[i][j] > max) | |
| 72 | {
| |
| 73 | max = M[i][j]; | |
| 74 | } | |
| 75 | } | |
| 76 | } | |
| 77 | ||
| 78 | return max; | |
| 79 | } | |
| 80 | ||
| 81 | void change(int M[N][N], int max) | |
| 82 | {
| |
| 83 | for (int i = 6; i >= 3; i--) {
| |
| 84 | for (int j = 6; j >= i; j--) | |
| 85 | {
| |
| 86 | M[i][j] = max; | |
| 87 | } | |
| 88 | } | |
| 89 | ||
| 90 | for (int i = 2; i >= 0; i--) {
| |
| 91 | for (int j = 6; j >= 6 - i; j--) | |
| 92 | {
| |
| 93 | M[i][j] = max; | |
| 94 | } | |
| 95 | } | |
| 96 | } |