Язык Си
Работа со структурами и файлами
Багаж пассажира характеризуется количеством вещей и общим весом. Ввести в файл информацию об N пассажирах и вывести из файла фамилию пассажира, у которого самый маленький багаж по числу и по весу

14 Июн 2019 в 19:47
267 +1
0
Ответы
1
include

struct Passenger {
char name[50];
int num_items;
int total_weight;
};

int main() {
int N;
printf("Enter the number of passengers: ");
scanf("%d", &N);

struct Passenger passengers[N];
// Input passenger information
FILE *fp = fopen("passengers.txt", "w");
if (fp == NULL) {
printf("Error opening file\n");
return 1;
}
for (int i = 0; i < N; i++) {
printf("Enter passenger %d name: ", i + 1);
scanf("%s", passengers[i].name);
printf("Enter number of items for passenger %d: ", i + 1);
scanf("%d", &passengers[i].num_items);
printf("Enter total weight of items for passenger %d: ", i + 1);
scanf("%d", &passengers[i].total_weight);
fprintf(fp, "%s %d %d\n", passengers[i].name, passengers[i].num_items, passengers[i].total_weight);
}
fclose(fp);
// Find passenger with smallest baggage
fp = fopen("passengers.txt", "r");
if (fp == NULL) {
printf("Error opening file\n");
return 1;
}
struct Passenger smallest_baggage;
smallest_baggage.num_items = passengers[0].num_items;
smallest_baggage.total_weight = passengers[0].total_weight;
for (int i = 0; i < N; i++) {
fscanf(fp, "%s %d %d", passengers[i].name, &passengers[i].num_items, &passengers[i].total_weight);
if (passengers[i].num_items < smallest_baggage.num_items || (passengers[i].num_items == smallest_baggage.num_items && passengers[i].total_weight < smallest_baggage.total_weight)) {
smallest_baggage = passengers[i];
}
}
printf("Passenger with the smallest baggage:\n");
printf("Name: %s\nNumber of items: %d\nTotal weight: %d\n", smallest_baggage.name, smallest_baggage.num_items, smallest_baggage.total_weight);
fclose(fp);
return 0;

}

21 Апр 2024 в 01:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир