Вывести список на экран, упорядочив по длине текста сообщений в порядке убывания - C (СИ)
Формулировка задачи:
Вложение 772475
Вложение 772476
Вложение 772477
Решение задачи: «Вывести список на экран, упорядочив по длине текста сообщений в порядке убывания»
textual
Листинг программы
- #include <stdlib.h>
- #include <stdio.h>
- #include <locale.h>
- #include <time.h>
- #include <string.h>
- #define MAX 60
- struct spis
- {
- int adr;
- char msg[MAX];
- int data;
- int sz;
- };
- int main()
- {
- setlocale(LC_ALL,"rus");
- int n,i,j;
- puts("Введите размер списка:");
- scanf("%d",&n);
- struct spis masstr[n],temp;
- puts("Теперь обработаем массив:");
- for(i=0;i<n;i++) //в этом цикле заполняем массив структур
- {
- printf("Введите адрес в %d структуре:",i+1);
- scanf("%d",&masstr[i].adr);
- printf("Введите сообщение в %d структуре:",i+1);
- scanf("%s",&masstr[i].msg);
- printf("Введите дату в %d структуре:",i+1);
- scanf("%d",&masstr[i].data);
- masstr[i].sz=strlen(masstr[i].msg);
- }
- for( i = 0; i < n - 1; i++) //классическая сортировка по убыванию
- {
- for( j = i + 1; j < n; j++)
- {
- if (masstr[i].sz < masstr[j].sz)
- {
- temp = masstr[i];
- masstr[i] = masstr[j];
- masstr[j] = temp;
- }
- }
- }
- for( i = 0; i < n; i++) //выводим
- {
- printf("адрес - %d\nсообщение -%s\nдата - %d\n\n\n",masstr[i].adr,masstr[i].msg,masstr[i].data);
- }
- return 0;
- }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы:
- stdlib.h для работы с массивами и сортировкой
- printf.h для использования функции printf
- string.h для работы со строками
- time.h для работы со временем
- locale.h для установки локали
- scanf.h для работы с функцией scanf
- Определяем структуру:
- Создаем структуру spis, которая содержит поля: адрес, сообщение, дата и размер сообщения
- Ввод данных:
- Задаем размер списка
- Заполняем массив структур с помощью scanf
- Сортировка списка:
- Используем классический алгоритм сортировки пузырьком для сортировки списка по убыванию длины сообщений
- Вывод отсортированного списка:
- Выводим отсортированный список на экран с помощью printf
- Завершение программы:
- Возвращаем 0, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д