Дана целочисленная матрица размера n × m. Найти количество ее строк, все элементы которых различны - C (СИ)
Формулировка задачи:
Решите задачи данной группы, оформив решение в виде процедур генерации,
вывода и обработки массивов. Предусмотрите в процедуре генерации
массива ввод границ диапазона случайных чисел. Дана целочисленная матрица размера n × m. Найти количество ее строк,
все элементы которых различны.
Решение задачи: «Дана целочисленная матрица размера n × m. Найти количество ее строк, все элементы которых различны»
textual
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #define N 9
- #define M 7
- // Дана целочисленная матрица размера N * M. Найти количество ее строк,
- //все элементы которых различны.
- int random (int min, int max)//генерирует случайные числа в диапазоне min -> max
- {
- int a, b;
- a = min < max ? min : max;
- b = max > min ? max : min;
- return rand() % (b - a + 1) + a;
- }
- int different_elements (int *row)//функция проверяет повторяются ли элементы в строке
- {
- int flag = 0;
- for(int i = 0; i < M - 1; ++i)
- for(int j = i + 1; j < M; ++j)
- if(row[i] == row[j])
- flag = 1;
- return !flag ? 1 : 0;
- }
- void print_matrix (int arr[N][M], int a, int b)//функция выводит матрицу на экран
- {
- puts("Matrix:");
- for(int i = 0; i < N; ++i){
- for(int j = 0; j < M; ++j)
- printf(" %d", arr[i][j] = random(a, b));
- printf("\n");
- }
- }
- int main()
- {
- int A[N][M], i, n = 0, min, max;
- puts("Enter a range of values of the matrix:");
- scanf("%d%d", &min, &max);
- srand(time(0));
- print_matrix(A, min, max);
- for(i = 0; i < N; ++i)
- n += different_elements(A[i]);
- if(n == 0)
- printf("No lines\n");
- else
- printf("%d lines\n", n);
- return 0;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д