Вывести список на экран, упорядочив по длине текста сообщений в порядке убывания - 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;
 
}

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

  1. Включаем необходимые заголовочные файлы:
    • stdlib.h для работы с массивами и сортировкой
    • printf.h для использования функции printf
    • string.h для работы со строками
    • time.h для работы со временем
    • locale.h для установки локали
    • scanf.h для работы с функцией scanf
  2. Определяем структуру:
    • Создаем структуру spis, которая содержит поля: адрес, сообщение, дата и размер сообщения
  3. Ввод данных:
    • Задаем размер списка
    • Заполняем массив структур с помощью scanf
  4. Сортировка списка:
    • Используем классический алгоритм сортировки пузырьком для сортировки списка по убыванию длины сообщений
  5. Вывод отсортированного списка:
    • Выводим отсортированный список на экран с помощью printf
  6. Завершение программы:
    • Возвращаем 0, чтобы указать, что программа успешно завершилась

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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