Организовать выбор людей, суммарный вес багажа которых превышает 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;
}

Объяснение кода листинга программы

  1. Включаем заголовочный файл , который содержит функции ввода-вывода.
  2. Создаём структуру Passenger, которая содержит поля для фамилии, количества предметов и веса багажа.
  3. В функции main() считываем количество пассажиров и используем функцию new для выделения памяти под массив структур Passenger.
  4. С помощью цикла for считываем данные про каждого пассажира**: фамилию, количество предметов и вес багажа.
  5. Сохраняем данные в файл output.txt, используя функцию fprintf.
  6. Отсеиваем пассажиров с багажом тяжелее 20 кг, используя цикл for и условный оператор if.
  7. Выводим данные о пассажирах с багажом тяжелее 20 кг в файл output.txt с помощью функции fprintf.
  8. Закрываем файл output.txt с помощью функции fclose.
  9. Возвращаем 0, чтобы указать, что программа успешно завершилась.

Оцени полезность:

5   голосов , оценка 4.2 из 5
Похожие ответы