Структура «Фильм»:        Задания 1, 2, 3, 7, 8    
-    название;
-    режиссер (фамилия, имя, отчество);
-    страна;
-    год выпуска;
-    стоимость;
       -      доход.
Задания к структурам.
1.    Задать с клавиатуры размер массива структур.
2.    Написать функцию для формирования одномерного массива структур, значения которых вводятся с клавиатуры.
3.    Написать функцию вывода форматированной таблицы структур на экран с шапкой.
4.    Написать функцию дополнения уже существующего массива структур новыми структурами.
5.    Написать функцию поиска структуры с заданным значением выбранного элемента.
6.    Написать функцию постраничного вывода на экран содержимого массива структур.
7.    Написать функцию поиска структур с заданными признаками (например, по заданному диапазону значений элемента).
8.    Написать функцию упорядочения массива структур по заданному полю (элементу).
#include <conio.h>
#include <stdio.h>
#include <string.h>
struct SFilm {
 char Art[20];
 char FIO[35];
 char Country[10];
 char Year[4];
 char Price[8];
 char Vol[8];
 SFilm *Next;
 SFilm *Prior;
};
SFilm *Film, *Start, *End;
int SizeOfFilms = 0;
void FillFilms();
void PrintFilms();
void Find(char find[20]);
void Sort();
void main()
{
 Film = Start = End = NULL;
 clrscr();
 printf("Введи количество записей: ");
 scanf("%d", &SizeOfFilms);
 Film = new SFilm;
 Start = Film;
 End = Film;
 FillFilms();
 clrscr();
 PrintFilms();
 printf("\n\nВведи название фильма для поиска: ");
 char findf[15];
 scanf("%15s", &findf);
 Find(findf);
 Sort();
}
void FillFilms()
{
 Film = Start;
 for (int i=0; i<SizeOfStructFilm; i++)
 {
  printf("[%d] Название: ", i);
  scanf ("%20s", &Film->Art); fflush(stdin);
  printf("[%d] Режиссёр: ", i);
  scanf ("%35s", &Film->FIO); fflush(stdin);
  printf("[%d] Страна: ", i);
  scanf ("%10s", &Film->Country); fflush(stdin);
  printf("[%d] Год выпуска: ", i);
  scanf ("%4s", &Film->Year); fflush(stdin);
  printf("[%d] Стоимость: ", i);
  scanf ("%8s", &Film->Price); fflush(stdin);
  printf("[%d] Доход: ", i);
  scanf ("%8s", &Film->Vol); fflush(stdin);
  printf("\n");
  SFilm *temp = new SFilm;
  temp->Next = NULL;
  temp->Prior = Film;
  Film->Next = temp;
  Film->Prior = Start;
  Film = temp;
 }
}
void PrintFilms()
{
 printf("+--------------------+-----------------------------------+----------+----+--------+--------+");
 printf("|      Название      |              Режиссёр             | Отчество | Год|  Стоимость|  Доход |");
 printf("+--------------------+-----------------------------------+----------+----+--------+--------+");
 Film = Start;
 for (int i=0; i<SizeOfStructFilm; i++)
 {
  printf("|%20s|%35s|%10s|%4s|%8s|%8s|", Film->Art, Film->FIO, Film->Country, Film->Year, Film->Price, Film->Vol);
  Film = Film->Next;
 }
 printf("+--------------------+-----------------------------------+----------+----+--------+--------+");
}
void Find (char find[15])
{
 printf("+--------------------+-----------------------------------+----------+----+--------+--------+");
 printf("|      Название      |              Режиссёр             | Отчество | Год|  Стоимость|  Доход |");
 printf("+--------------------+-----------------------------------+----------+----+--------+--------+");
 Film = Start;
 for (int i=0; i<SizeOfStructFilm; i++)
 {
  int yes = 0;
  for (int j=0; j<strlen(find); j++) if (find[j] == Film->Family[j]) yes++;
  if (yes == strlen(find))
  printf("|%20s|%35s|%10s|%4s|%8s|%8s|", Film->Art, Film->FIO, Film->Country, Film->Year, Film->Price, Film->Vol);
  Film = Film->Next;
 }
 printf("+--------------------+-----------------------------------+----------+----+--------+--------+");
}
void Sort()
{
 SFilm *temp = Start;
 for (int i=0; i<SizeOfStructFilm; i++)
  for (int j=i; j<SizeOfStructFilm; j++)
  {
   temp = Film->Prior;
   if (Film->Art[1]<temp->Art[1])
   {
    Film->Next = temp->Next;
    Film->Prior = temp->Prior;
    Film = temp;
   }
  }
 PrintFilms();
}