Задача 2.4

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. Проверка

Программа работает корректно.

Хостинг от uCoz