Advertisement
Qellex

5.2

Dec 23rd, 2020 (edited)
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.61 KB | None | 0 0
  1. #include "stdio.h"
  2. #include "locale.h"
  3. #include "stdlib.h"
  4. #include "time.h"
  5.  
  6. void input_arr(int** a, int n, int m) {
  7.     printf("Введите числа не больше 100: ");
  8.     for (int i = 0; i < n; i++) {
  9.         for (int j = 0; j < m; j++)
  10.             do {
  11.                 scanf_s("%i", &a[i][j]);
  12.             } while ((a[i][j] < 0) || (a[i][j] > 100));
  13.     }
  14. }
  15.  
  16.  
  17. void inputrand_arr(int** a, int n, int m) {
  18.     srand(clock());
  19.     for (int i = 0; i < n; i++) {
  20.         for (int j = 0; j < m; j++)
  21.             a[i][j] = rand() % 10;
  22.     }
  23. }
  24.  
  25.  
  26. void outprt(int** a, int n, int m) {
  27.     for (int i = 0; i < n; i++) {
  28.         for (int j = 0; j < m; j++)
  29.             printf("%i ", a[i][j]);
  30.         printf("\n");
  31.     }
  32. }
  33.  
  34.  
  35. int main() {
  36.  
  37.     setlocale(LC_ALL, "rus");
  38.  
  39.     int n; int m;
  40.     printf("Введите размер матрицы nxm: ");
  41.     do {
  42.         scanf_s("%d%d", &n, &m);
  43.         if ((n <= 0) || (m <= 0))
  44.             printf("Повторите ввод, введите положительное число: ");
  45.     } while ((n <= 0) || (m <= 0));
  46.  
  47.  
  48.     int** a = (int**)malloc(n * sizeof(int**));
  49.     for (int i = 0; i < n; i++) {
  50.         a[i] = (int*)malloc(n * sizeof(int*));
  51.     }
  52.  
  53.  
  54.     printf("Выберите способ ввода массива:\n1-ввод с клавиатуры\n2-заполнение массива случайными числами\n");
  55.  
  56.     int f;
  57.     do {
  58.         scanf_s("%i", &f);
  59.         if ((f != 1) && (f != 2))
  60.             printf("Введите только 1 или 2: ");
  61.     } while ((f != 1) && (f != 2));
  62.     if (f == 1)
  63.         input_arr(a, n, m);
  64.     else
  65.         inputrand_arr(a, n, m);
  66.     printf("\nИсходная матрица\n");
  67.     outprt(a, n, m);
  68.  
  69.     int temp; // кол-во одиннак элементов в строке
  70.     int otvet = 0; // кол=во одиннак элементов в строке
  71.     int t = 0; // запоминает строку с наиб одиннак элементами
  72.     for (int i = 0; i < m; i++) { // берет строку
  73.         temp = 0; // обнуляет переменную
  74.         for (int j = 0; j < (n - 1); j++) { // берем столбец
  75.             for (int k = j + 1; k < n; k++) { // проверяем кол-во одиннак элементов
  76.                 if (a[i][j] == a[i][k])
  77.                     temp++;
  78.             }
  79.         } // Запоминаем ответ
  80.         if (temp > otvet) {
  81.             t = i + 1;
  82.             otvet = temp;
  83.         }
  84.     }
  85.  
  86.  
  87.     printf("Номер строки %d", t);
  88.  
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement