Дана последовательность целых чисел. Найти количество различных чисел в этой последовательности - C (СИ)

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

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

Дана последовательность целых чисел. Найти количество различных чисел в этой последовательности. Одномерные массивы, срочно нужна помощь при написании кода. Если поможете буду благодарен.

Решение задачи: «Дана последовательность целых чисел. Найти количество различных чисел в этой последовательности»

textual
Листинг программы
#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, что означает успешное выполнение программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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