2.c语言自定义int FindAP(Elemtype a[],int n); 功能:输入起飞时间,始发地,航班号,订票人数进行组合查询。如果查询成功返回机票信息,查询失败返回-1。
时间: 2023-12-14 08:37:20 浏览: 28
这里提供一个参考实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_FLIGHTS 100
typedef struct {
int departure_time;
char origin[20];
char flight_number[10];
int num_passengers;
} Flight;
int FindAP(Flight flights[], int n) {
int dep_time, num_passengers;
char origin[20], flight_number[10];
int i;
printf("输入起飞时间:");
scanf("%d", &dep_time);
printf("输入始发地:");
scanf("%s", origin);
printf("输入航班号:");
scanf("%s", flight_number);
printf("输入订票人数:");
scanf("%d", &num_passengers);
for (i = 0; i < n; i++) {
if (flights[i].departure_time == dep_time &&
strcmp(flights[i].origin, origin) == 0 &&
strcmp(flights[i].flight_number, flight_number) == 0 &&
flights[i].num_passengers >= num_passengers) {
return i;
}
}
return -1;
}
int main() {
Flight flights[MAX_FLIGHTS] = {
{800, "北京", "CA1234", 100},
{1200, "上海", "MU5678", 50},
{1600, "广州", "CZ9012", 200},
};
int num_flights = 3;
int index;
index = FindAP(flights, num_flights);
if (index != -1) {
printf("查询成功:\n");
printf(" 起飞时间:%d\n", flights[index].departure_time);
printf(" 始发地:%s\n", flights[index].origin);
printf(" 航班号:%s\n", flights[index].flight_number);
printf(" 订票人数:%d\n", flights[index].num_passengers);
} else {
printf("查询失败!\n");
}
return 0;
}
```
这个程序定义了一个 `Flight` 结构体,包含了起飞时间、始发地、航班号和订票人数等信息。`FindAP` 函数根据输入的查询条件,在航班数组中查找符合条件的航班,并返回其索引值。如果没有符合条件的航班,则返回 -1。
在主函数中,我们定义了一个航班数组 `flights`,并初始化了三个航班信息。然后调用 `FindAP` 函数进行查询,如果查询成功,则输出查询结果,否则输出查询失败的提示。