Организовать выбор людей, суммарный вес багажа которых превышает 20 кг. - C (СИ)
Формулировка задачи:
Пассажиры. Записать в файл следующие данные о пассажирах: фамилия, количество вещей, суммарный вес багажа. Организовать выбор людей, суммарный вес багажа которых превышает 20 кг.
Прошу решить только в СИ.
Решение задачи: «Организовать выбор людей, суммарный вес багажа которых превышает 20 кг.»
textual
Листинг программы
#include <stdio.h> struct Passenger { char surname[100]; int NumberOfItems; int weight; void setSurname(char str[]) { for (int i = 0; i < 100; i++) { surname[i] = str[i]; } } }; int main() { // freopen("output.txt", "w", stdout); FILE* pFile = fopen("output.txt", "w"); int n; printf("Enter number of passengers: "); scanf("%d", &n); Passenger* a = new Passenger[n]; // Ввод данных for (int i = 0; i < n; i++) { char str[100]; printf("Enter Surname of Passanger %d: ", i+1); scanf("%s", str); a[i].setSurname(str); printf("Enter Number of Items of Passanger %d: ", i + 1); scanf("%d", &a[i].NumberOfItems); printf("Enter weight of Passanger %d: ", i + 1); scanf("%d", &a[i].weight); } // Выводим все данные в файл: for (int i = 0; i < n; i++) { fprintf(pFile, "Surname: %s\tNumber of Items: %d\t Weight: %d \n", a[i].surname, a[i].NumberOfItems, a[i].weight); } // Отсеиваем тех у кого вес больше 20 кг: fprintf(pFile, "\n\n\nPeople with weight more than 20 kg:\n"); for (int i = 0; i < n; i++) { if (a[i].weight > 20) { fprintf(pFile, "Surname: %s\tNumber of Items: %d\t Weight: %d \n", a[i].surname, a[i].NumberOfItems, a[i].weight); } } fclose(pFile); return 0; }
Объяснение кода листинга программы
- Включаем заголовочный файл
, который содержит функции ввода-вывода. - Создаём структуру Passenger, которая содержит поля для фамилии, количества предметов и веса багажа.
- В функции main() считываем количество пассажиров и используем функцию new для выделения памяти под массив структур Passenger.
- С помощью цикла for считываем данные про каждого пассажира**: фамилию, количество предметов и вес багажа.
- Сохраняем данные в файл output.txt, используя функцию fprintf.
- Отсеиваем пассажиров с багажом тяжелее 20 кг, используя цикл for и условный оператор if.
- Выводим данные о пассажирах с багажом тяжелее 20 кг в файл output.txt с помощью функции fprintf.
- Закрываем файл output.txt с помощью функции fclose.
- Возвращаем 0, чтобы указать, что программа успешно завершилась.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д