1. Условие
Багаж пассажира характеризуется количеством вещей и их общим весом. Дан массив, содержащий информацию о багаже нескольких пассажиров. Определить, имеются ли два пассажира, багажи которых совпадают по числу вещей и различаются по весу не более чем на 0.5 кг.
2. Решение
Оператор задает количество пассажиров. Программа динамически выделяет блок оперативной памяти под массив структур, в которых хранится информация о пассажирах. В цикле оператор производит инициализацию массива структур. Далее массив обрабатывается: ищутся два пассажира, для которых выполняются заданные условия.
3. Алгоритм решения

4. Текст программы
1 : #include <stdio.h>
2 : #include <conio.h>
3 : #include <math.h>
4 : #include <alloc.h>
5 : #define DATA struct tabel
6 : DATA
7 : {
8 : int num;
9 : int kol;
10: int kg;
11: int gr;
12: }*b;
13: void main()
14: {
15: int i, j, n, s;
16: clrscr( );
17: printf( "\n Введите кол-во пассажиров n (n-целое,n>0) " );
18: scanf( "%d", &n );
19: b=(DATA*)malloc( n*sizeof(DATA) );
21 for( i=0; i<n; i++ )
20: {
21: (b+i)->num=i+1;
22: printf( "\n Введите кол-во вещей %d-ro пассажира ", i+1 );
23: scanf( "%d", &(b+i)->kol );
24: printf( "\n Введите массу вещей %d-ro пассажира: ", i+1 );
25: printf( "\n \t Kr:" );
26: scanf( "%d", &(b+i)->kg );
27: printf( "\n \t гр:" );
28: scanf("%d",&(b+i)->gr);
29: }
30: clrscr();
31: printf("\n Пассажир ___ Количество вещей ____ Масса вещей \n");
32: for (i=0; i<n; i++)
33: printf ("____ %9d ____________ %3d ___________ %10d.%кг _\n", (b+i)->num,
34: (b+i)->kol, (b+i)->kg, (b+i)->gr );
35: printf("\n Совпадают по количеству вещей и различаются по весу вещей не
36: более чем на 0,5 кг пассажиры: \n" );
37: for (i=0; i<n; i++)
38: for (j=0; j<n; j++)
39: if (i!=j && (b+i)->kol==(b+j)->kol &&
40: fabs(((b+i)->kg+.001*(b+i)->gr)-((b+j)->kg+.001*(b+j)->gr))<=0.5)
41: printf ( "\n \t \t %d %10d", (b+i)->num, (b+j)->num);
42: printf( "\n \n \n Для завершения программы введите любой символ ");
43: getch( );
44: free(b);
45: }
5. Работа программы
Введите количество пассажиров n (n-целое,n>0)
3
Введите количество вещей 1-го пассажира 6
Введите массу вещей 1-го пассжира кг.: 5 гр.: 900
Введите количество вещей 2-го пассажира 6
Введите массу вещей 2-го пассажира кг.: 6 гр.: 0
Введите количество вещей 3-го пассажира 5
Введите массу вещей 3-го пассажира кг.: 6 гр.: 300
Пассажир _____ Количество вещей _____ Масса вещей
___ 1 _______________ 6 ______________ 5,900 кг _
___ 2 _______________ 6 ______________ 6,0 кг ___
___ 3 _______________ 5 ______________ 6,300 кг _
Совпадают по количеству вещей и различаются по весу не более чем на 0,5 кг пассажиры:
1 2
2 1
Для завершения программы введите любой символ
6. Проверка
Программа работает корректно.