Advertisement
Guest User

Untitled

a guest
Dec 17th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.71 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. int main()
  5. {
  6.     // объявляем переменные и матрицу
  7.     int n=2;
  8.     int i,j,k;
  9.     bool flag;
  10.     int temp;
  11.     int bad_row=0, unical_row=0;
  12.     int bad_col=0, unical_col=0;
  13.     int D[2*n][2*n] = {{1,10,1,5},
  14.                        {2,6 ,2,1},
  15.                        {4,8 ,8,2},
  16.                        {9,0 ,3,7}}; // по умолчанию
  17.  
  18. //    for (i=0; i<2*n;i++)
  19. //    {
  20. //        for (j=0; j<2*n;j++)
  21. //        {
  22. //            printf("Введите элемент матрицы %d строки, %d столбца", i, j);
  23. //            scanf("%d", &D[i][j]);
  24. //        }
  25. //    }
  26.  
  27.     // печать нашей матрицы
  28.     for (i=0; i<2*n;i++)
  29.     {
  30.         for (j=0; j<2*n;j++)
  31.             printf("%d  ", D[i][j]);
  32.         printf("\n");
  33.     }
  34.  
  35.     // считаем количество неуникальных строк
  36.     for (i=0; i<2*n; i++)
  37.     {
  38.         flag = false;
  39.         for (j=0; j<2*n-1; j++)
  40.         {
  41.             if (flag == true) break; // выход из цикла j
  42.             for (k=j+1; k<2*n;k++)
  43.             {
  44.                 if (D[i][j] == D[i][k]) {
  45.                     flag = true;
  46.                     bad_row++;
  47.                     break; // выход из цикла k
  48.                 }
  49.             }
  50.         }
  51.     }
  52.  
  53.     unical_row = 2*n - bad_row;
  54.     printf("Количество уникальных строк: %d \n", unical_row);
  55.  
  56.     // считаем количество неуникальных столбцов
  57.     for (j=0; i<2*n; i++)
  58.     {
  59.         flag = false;
  60.         for (i=0; j<2*n-1; j++)
  61.         {
  62.             if (flag == true) break; // выход из цикла j
  63.             for (k=j+1; k<2*n;k++)
  64.             {
  65.                 if (D[i][j] == D[i][k]) {
  66.                     flag = true;
  67.                     bad_col++;
  68.                     break; // выход из цикла k
  69.                 }
  70.             }
  71.         }
  72.     }
  73.  
  74.     unical_col = 2*n - bad_col;
  75.     printf("Количество уникальных столбцов: %d \n", unical_col);
  76.  
  77.     // проверяем условие задачи и если да, то меняем строки местами
  78.     if (unical_col > unical_row){
  79.         for (i=0; i<n; i++)
  80.         {
  81.             for (j=0; j<2*n; j++)
  82.             {
  83.                 temp = D[i][j];
  84.                 D[i][j] = D[2*n-i-1][j];
  85.                 D[2*n-i-1][j] = temp;
  86.             }
  87.         }
  88.     }
  89.  
  90.     // печатаем изменённую матрицу
  91.     for (i=0; i<2*n;i++)
  92.     {
  93.         for (j=0; j<2*n;j++)
  94.             printf("%d  ", D[i][j]);
  95.         printf("\n");
  96.     }
  97.  
  98.     return 0;
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement