Структура: Пассажир - C (СИ)
Формулировка задачи:
Не могу разобраться в структурах . Помогите сделать программу.
Нужно создать структуру "пассажир". в которой будут поля:
-Фамилия пассажира
-количество вещей багажа
-вес багажа
-номер рейса
Написать программу, которая отдельными функциями делает действие:
-введение с клавиатуры данных в массив, состоящий из N переменных типа "пассажир"
-упорядочение записей по убыванию номера рейса
-выведение на экран информацию о пассажире,который имеет вес багажа больше 30 кг.
Решение задачи: «Структура: Пассажир»
textual
Листинг программы
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #define N 10 typedef struct passenger { char family[255]; int caunt; double weight; int flight; }pas; int addpas(pas *a, int k) { printf("Введите фамилию: "); scanf("%s", a[k].family); ////gets(a[k].family); printf("Количество вещей: "); scanf("%d", &a[k].caunt); printf("Вес багажа: "); scanf("%lf", &a[k].weight); printf("Номер рейса: "); scanf("%d", &a[k].flight); return k + 1; } void arrswap(pas *a, pas *b) { pas c; c.caunt = a->caunt; strcpy(c.family, a->family); c.flight = a->flight; c.weight = a->weight; a->caunt = b->caunt; strcpy(a->family, b->family); a->flight = b->flight; a->weight = b->weight; b->caunt = c.caunt; strcpy(b->family, c.family); b->flight = c.flight; b->weight = c.weight; return; } void sortpas(pas *a, int k) { int max; for (int i = 0; i < k-1; i++) { max = i; for (int j = i + 1; j < k; j++) if (a[j].flight > a[max].flight) max = j; arrswap(&a[i], &a[max]); } printf("Пассажиры отсортированы по убыванию номера рейса\n"); getch(); return; } void print_pas(pas a) { printf("\n"); printf("Фамилия: %s\n", a.family); printf("Количество вещей: %d\n", a.caunt); printf("Вес вещей: %.2lf\n", a.weight); printf("Номер рейса: %d\n", a.flight); } void print_all(pas *a, int k) { for (int i = 0;i < k;i++) print_pas(a[i]); getch(); } void pas30(pas *a, int k) { for (int i = 0;i < k;i++) if (a[i].weight>30.0) print_pas(a[i]); getch(); return; } pas arr[N]; int main() { int n,k=0; system("chcp 1251>NUL"); while (1) { system("cls"); printf(" 1-Добавить пассажира\n"); printf(" 2-Сортировать по убыванию номера рейса\n"); printf(" 3-Вес > 30 кг.\n"); printf(" 4-Распечатать список пассажиров\n"); printf(" 0-Выход\n"); printf("Введите действие: "); if (scanf("%d", &n) == 1) { printf("\n"); switch (n) { case 1: k = addpas(arr, k); break; case 2: sortpas(arr, k); break; case 3: pas30(arr, k); break; case 4: print_all(arr, k); break; case 0: return 0; break; } } scanf("%*[^\n]"); } return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д