Подсчитать, сколько в матрице разных чисел - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Нужно подсчитать сколько в матрице разных чисел. Помогите написать

Решение задачи: «Подсчитать, сколько в матрице разных чисел»

textual
Листинг программы
#include <stdlib.h>
#include <stdio.h>
int asc(int *a, int *b) { return *a - *b; }
// ...
    qsort(a, n, sizeof(*a), asc);
    int k=1;
    for (int i=1, *p=a; i<n; ++i, ++p) k += *(p+1)!=*p;
    printf("%d\n", k);

Объяснение кода листинга программы

В этом коде:

  1. Название переменной: a Тип: int Значение: массив целых чисел Описание: В этой переменной хранится массив целых чисел, который нужно отсортировать.
  2. Название переменной: b Тип: int Значение: массив целых чисел Описание: В этой переменной может храниться массив целых чисел, который нужно отсортировать. Однако, в данном коде, эта переменная не используется.
  3. Название функции: asc Тип: int Аргументы: int a, int b Описание: Эта функция сравнивает два числа и возвращает их разность. Она используется в функции qsort для сортировки массива a.
  4. Название функции: qsort Тип: void Аргументы: int a, int n, size_t size, int (compar)(const void , const void ) Описание: Эта функция сортирует массив a по возрастанию. Она использует функцию asc в качестве аргумента сравнения.
  5. Название переменной: n Тип: int Значение: количество элементов в массиве a Описание: Эта переменная содержит количество элементов в массиве a.
  6. Название переменной: k Тип: int Значение: количество уникальных чисел в массиве Описание: Эта переменная инициализируется значением 1 и увеличивается каждый раз, когда функция qsort встречает новое число. В конце она выводит общее количество уникальных чисел в массиве.
  7. Название переменной: i Тип: int Значение: индекс текущего элемента в массиве Описание: Эта переменная используется в цикле для прохода по всем элементам массива.
  8. Название переменной: p Тип: int * Значение: указатель на текущий элемент массива Описание: Эта переменная используется в цикле для прохода по всем элементам массива.
  9. Название переменной: printf Тип: int Аргументы: const char *format, ... Описание: Эта функция используется для вывода значения переменной k на экран. Таким образом, в этом коде сначала происходит сортировка массива a по возрастанию с помощью функции qsort. Затем, в цикле, происходит проход по всем элементам массива и каждый раз, когда функция qsort встречает новое число, значение переменной k увеличивается. В конце, с помощью функции printf, выводится общее количество уникальных чисел в массиве.

Оцени полезность:

5   голосов , оценка 4.4 из 5
Похожие ответы