Дописать или подправить алгоритм вывода неповторяющихся элементов в массиве - C (СИ)
Формулировка задачи:
#include <conio.h> #include <stdio.h> #include <stdlib.h> #define n 7 void main() { randomize(); clrscr(); int a[n]; int b[n]; int c,k; printf ("\n ishodnyi ¬*ббЁў:"); for (int i=0; i<n;i++) { a[i]=random (10); printf ("%5i",a[i]); } // zapisat te kotorye vstrechautca 1 raz for (i=0; i<n; i++) { k=a[i]; c=0; for (int j=0; j<n;j++) { if (k==a[j]) c++; //вот тут вроде должны записываться те элементы которые не повторяются в массиве. } } printf ("\n"); printf (" izmenenyi massiv"); for (i=0; i<n;i++) printf ("%5i",b[i]); getch(); }
Решение задачи: «Дописать или подправить алгоритм вывода неповторяющихся элементов в массиве»
textual
Листинг программы
#include <stdio.h> int * find(const int * array, const size_t count, const int value) { return ( ! count ) ? NULL : ( *array == value ) ? (int*)array : find(array + 1, count - 1, value); } #define COUNT (10) int main(void) { int arr[COUNT] = { 2, 3, 4, 3, 7, 5, 6 , 5, 7, 8 }, i; for ( i = 0; i < COUNT; ++i ) if ( find(arr, COUNT, arr[i]) == arr + i && find(arr + i + 1, COUNT - i - 1, arr[i]) == NULL ) printf("%d ", arr[i]); printf("\n"); return 0; }
Объяснение кода листинга программы
- Подключение стандартной библиотеки ввода-вывода.
- Определение функции
find
, которая принимает три аргумента: указатель на начало массива, размер массива и значение, которое нужно найти. - Внутри функции
find
используется тернарный оператор для определения, является ли текущий элемент искомым значением. Если это так, то возвращается указатель на текущий элемент. Если нет, то рекурсивно вызывается функцияfind
для следующего элемента (передается указатель на следующий элемент и размер массива уменьшается на 1). Если массив пустой, то возвращается NULL. - В функции
main
определен массивarr
с десятью элементами. - Затем в цикле перебираются все элементы массива.
- Если текущий элемент не найден в оставшейся части массива (проверяется с помощью функции
find
), то он выводится на экран. - В конце программы возвращается 0, что означает успешное завершение работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д