View difference between Paste ID: JpA8GwwT and S6THMiDw
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
}