1. Условие
Даны натуральное число n, целые числа a1, ..., аn (в последовательности могут быть повторяющиеся члены). Получить все числа, которые входят в последовательность по одному разу.
2. Решение
В программе у оператора запрашивается количество чисел n. Затем выделяется оперативная память под массив чисел a1, ..., аn. В цикле массив обрабатывается: ищутся числа, входящие в последовательность только один раз. Результат поиска выводится на экран.
3. Алгоритм решения
4. Текст программы
1 : #include <stdio.h> 2 : #include <alloc.h> 3 : #include <conio.h> 4 : void main(void) 5 : { 6 : int i, j, n, povt; 7 : float *a; 8 : clrscr( ); 9 : printf( "\n \t \t Введите количество элементов n = " ); 10: scanf( "%d", &n ); 11: a=(float *) malloc(n*sizeof(float)); 12: printf( "\n \t \t \t Введите элементы: \n" ); 13: for(i=0; i<n; i++) 14: { 15: printf( "\t \t \t \t a[%d]=", i ); 16: scanf( "%f", &a[i] ); 17: } 18: printf( "\n \n \t \t \t Неповторяющиеся элементы:" ); 19: for(i=0;i<n;i++) 20: { 21: povt=0; 22: for(j=0;j<n;j++) 23: { 24: if(a[i] == a[j] && i!=j) 25: povt=1; 26: } 27: if(povt == 0) 28: printf("\n\t\t\t\t a[%d]=%g", i, a[i]); 29: } 30: printf( " \n \n \n \t \t Для выхода нажмите любую клавишу."); 31: getch( ); 32: free( a ); 33: }
5. Работа программы
Введите количество элементов n=8
Введите элементы:
а[0] = 1
а[1] = 2
а[2] = 3
а[3] = 4
a[4] = 1
а[5] = 2
а[6] = 3
а[7] = 8
Неповторяющиеся элементы:
а[3] = 4
а[7] = 8
Для завершения программы нажмите клавишу.
6. Проверка
Программа работает корректно.