Maksud3

Lab6

May 17th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
Add Comment
Please, Sign In to add comment