Дана последовательность целых чисел. Найти количество различных чисел в этой последовательности - C (СИ)
Формулировка задачи:
Решение задачи: «Дана последовательность целых чисел. Найти количество различных чисел в этой последовательности»
#include <stdio.h>
//-----------------------------------------------------------------------------
int cnt(const int arr[], const unsigned size) {
unsigned i, j, count = 0;
for (i = 0; i < size; ++i) {
for (j = i + 1; (j < size) && (arr[i] != arr[j]); ++j) { ; }
if (j == size) {
count++;
}
}
return count;
}
//-----------------------------------------------------------------------------
int main() {
int arr[] = {1, 5, 3, 3, 5, 1, 2, 3, 4, 3};
printf("%d\n", cnt(arr + 0, 10));
printf("%d\n", cnt(arr + 3, 7));
printf("%d\n", cnt(arr + 5, 5));
printf("%d\n", cnt(arr + 7, 3));
return 0;
}
Объяснение кода листинга программы
В данном коде представлен функция cnt, которая принимает два аргумента: массив целых чисел и размер этого массива. Внутри функции создаются две переменные i и j, которые используются для прохода по элементам массива. Переменная count инициализируется нулем и используется для подсчета количества уникальных чисел в массиве.
В первой части кода, которая находится внутри функции cnt, происходит проход по всем элементам массива. Для каждого элемента arr[i] происходит проход по всем последующим элементам массива arr[j]. Если arr[i] равно arr[j], то это означает, что текущий элемент уже встречался ранее, и его можно пропустить. Если arr[i] не равно arr[j], то это означает, что текущий элемент является уникальным, и его можно добавить к общему количеству count.
Во второй части кода, которая находится в функции main, создается массив arr с десятью элементами. Затем функция cnt вызывается три раза с разными аргументами. Первый вызов функции cnt происходит с массивом arr + 0 и размером 10. Это означает, что функция cnt будет считать количество уникальных чисел в массиве arr. Второй вызов функции cnt происходит с массивом arr + 3 и размером 7. Это означает, что функция cnt будет считать количество уникальных чисел в массиве arr, начиная с четвертого элемента (так как индексы в C начинаются с нуля). Третий вызов функции cnt происходит с массивом arr + 5 и размером 5. Это означает, что функция cnt будет считать количество уникальных чисел в массиве arr, начиная с шестого элемента. Четвертый вызов функции cnt происходит с массивом arr + 7 и размером 3. Это означает, что функция cnt будет считать количество уникальных чисел в массиве arr, начиная с восьмого элемента.
В конце кода функция main возвращает 0, что означает успешное выполнение программы.