Вывести на экран все сообщения отправленные адресатом, номер которого указывает пользователь - C (СИ)
Формулировка задачи:
Необходимо разработать программу, в которой выполняется ввод списка записей определенного типа, а затем - обработка списка. Сначала в программе должен вводиться размер списка (целое число), а сам список создается в виде динамического массива структур. Ввод одной записи осуществляется в одной строке. Описание структур приводится после вариантов задания.
задание:
Вывести на экран все сообщения (СООБЩЕНИЕ1) отправленные адресатом, номер которого указывает пользователь.
Адреса отправителя и получателя (целые положительные трехзначные числа); текст сообщения (строка 50 символов); дата пересылки (в формате ДД.ММ.ГГГГ).
Решение задачи: «Вывести на экран все сообщения отправленные адресатом, номер которого указывает пользователь»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> enum { LENGTH = 50 }; typedef struct { unsigned from: 10; unsigned to: 10; char msg[LENGTH]; unsigned day: 5; unsigned month: 4; unsigned year: 19; } e_mail; int main() { unsigned i, n, t; char j; e_mail* e; scanf("%u", &n); e = (e_mail*)malloc(n * sizeof(e_mail)); for (i = 0; i < n; i++) { scanf("%u", &t); e[i].from = t; scanf("%u", &t); e[i].to = t; getchar(); for (j = 0; j < LENGTH; j++) e[i].msg[j] = getchar(); scanf("%u", &t); getchar(); e[i].day = t; scanf("%u", &t); getchar(); e[i].month = t; scanf("%u", &t); e[i].year = t; } scanf("%u", &t); for (i = 0; i < n; i++) if (e[i].from == t) { for (j = 0; j < LENGTH; j++) putchar(e[i].msg[j]); putchar('\n'); } free(e); }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
- Определяется константа LENGTH, равная 50
- Определяется структура e_mail, которая содержит поля:
- from (номер отправителя),
- to (номер получателя),
- msg (сообщение),
- day (день),
- month (месяц),
- year (год)
- Определяется функция main()
- В функции main() объявляются и инициализируются переменные:
- i, n, t (для циклов и операций с числами)
- j (для операций с символами)
- e (указатель на массив структур e_mail)
- Считывается количество сообщений от пользователя
- Выделяется память под массив структур e_mail
- Заполняются поля from и to для каждого сообщения
- Считывается сообщение и сохраняется в поле msg
- Считываются поля day, month, year
- Пользователю предлагается ввести номер адресата
- Если номер адресата совпадает с полем from любого сообщения, то сообщение выводится на экран
- Освобождается память, выделенная под массив структур e_mail
- Программа завершается
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д