Вывести список на экран, упорядочив по длине текста сообщений в порядке убывания - 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, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д