Проверить, состоит ли массив только из различных чисел - 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() производится некая инициализация, но код, который вы предоставили, неполон, поскольку не содержит данных для обработки.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д