#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<unistd.h>
#define MAX 50
//функция пользователя
//для создания последовательности
// длиной n из неповторяющихся
//целочисленных значений:
void line(int *b,int n,int max)
{
srand(time(NULL));
for(int i = 0; i < n; i++)
{//for i
b[i]=rand()%max;
for(int j = 0; j < i; j++)
{
if(b[i]==b[j])
while(b[i]==b[j])
b[i]=rand()%max;
}
}//for i
//упорядочиваем b1...bn
//по возрастанию, меняя
//элементы массива местами:
for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++)
if(i!=j && b[i]<b[j])
b[i]^=b[j]^=b[i]^=b[j];
}
int main()
{
int n, a[25], *b, flag=0;
printf("Enter limit for b1...bn n = ");
scanf("%d",&n);
//формируем случайные значения
//для a1...a25 в диапозоне
//от 0 до MAX
line(a,25,MAX);
//создаём динамический массив
//для b1...bn:
b=(int*)malloc(n*sizeof(int));
//если массив b1...bn создан,
//то далее:
if(b)
{//if b
//формируем случайные значения
//для b1...bn в диапозоне
//от 0 до MAX
line(b,n,MAX);
//выводим a1...a25:
printf("\n\na1...a25:\n");
for(int i = 0; i < 25; i++)
printf("%d ",a[i]);
//выводим b1...bn:
printf("\n\nb1...b%d:\n",n);
for(int i = 0; i < n; i++)
printf("%d ",b[i]);
//сравниваем элементы
//обеих последовательностей
//и выводим несовпадающие значения
//из b1...bn:
printf("\n\nIn b1...b%d values don't match:\n",n);
for(int i = 0; i < n; i++)
{
flag=0;
for(int j = 0; j < 25; j++)
{
if(b[i]==a[i]) flag=1;
}
//если совпадений между значением
//и a1...a25 не найдено, то выводим:
if(!flag) printf("%d ",b[i]);
}
//освобождаем память кучи
//от массива b1...bn:
free(b);
}//if b
else
printf("\nError. Array not created.");
fflush(stdout);//сброс буфера
sleep(10);//пауза
return 0;
}
