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

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

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

Доброго времени суток товарищи! В институте дали задание "Проверить, состоит ли массив только из различных чисел?", вот сколько сижу, думаю, все никак не доходит чего от меня хотят? Даже и мысли не проскакивает о том как это реализовать... Выручайте!

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

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
 
int unique_values(const int * array, const size_t count) {
    if ( count < 2 )
        return 1;
    else {
        const int * tail = array + count - 1;
        
        while ( tail > array ) {
            if ( *tail == *array )
                return 0;
            --tail;
        }
        
        return unique_values(array + 1, count - 1);
    }
}
 
int main(void) {
    size_t count;
    
   ......

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

В данном коде реализована функция unique_values(), которая проверяет массив на наличие уникальных значений. Если массив содержит менее двух элементов, функция возвращает 1, так как в этом случае невозможно установить, являются ли значения уникальными. В противном случае функция начинает сравнивать элементы массива с конца и, если находит повторяющийся элемент, возвращает 0. Если же все элементы массива уникальны, функция вызывает саму себя, уменьшив размер массива на единицу, чтобы проверить уже новый массив на уникальность. В функции main() производится некая инициализация, но код, который вы предоставили, неполон, поскольку не содержит данных для обработки.

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


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

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

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