Вывести список на экран, упорядочив по длине текста сообщений в порядке убывания - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Вложение 772475 Вложение 772476 Вложение 772477

Решение задачи: «Вывести список на экран, упорядочив по длине текста сообщений в порядке убывания»

textual
Листинг программы
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <locale.h>
  4. #include <time.h>
  5. #include <string.h>
  6.  
  7. #define MAX 60
  8. struct spis
  9.     {
  10.         int adr;
  11.         char msg[MAX];
  12.         int data;
  13.         int sz;
  14.     };
  15.  
  16. int main()
  17. {
  18.     setlocale(LC_ALL,"rus");
  19.  
  20.     int n,i,j;
  21.     puts("Введите размер списка:");
  22.     scanf("%d",&n);
  23.     struct spis masstr[n],temp;
  24.     puts("Теперь обработаем массив:");
  25.     for(i=0;i<n;i++)                                //в этом цикле заполняем массив структур
  26.     {
  27.        printf("Введите адрес в %d структуре:",i+1);
  28.         scanf("%d",&masstr[i].adr);
  29.        printf("Введите сообщение в %d структуре:",i+1);
  30.         scanf("%s",&masstr[i].msg);
  31.        printf("Введите дату в %d структуре:",i+1);
  32.         scanf("%d",&masstr[i].data);
  33.        masstr[i].sz=strlen(masstr[i].msg);
  34.     }
  35.  
  36.     for( i = 0; i < n - 1; i++)                     //классическая сортировка по убыванию
  37. {
  38.     for( j = i + 1; j < n; j++)
  39.     {
  40.         if (masstr[i].sz < masstr[j].sz)
  41.         {
  42.             temp = masstr[i];
  43.             masstr[i] = masstr[j];
  44.             masstr[j] = temp;
  45.         }
  46.     }
  47. }
  48.  
  49.     for( i = 0; i < n; i++)                         //выводим
  50.     {
  51.  
  52.         printf("адрес - %d\nсообщение -%s\nдата - %d\n\n\n",masstr[i].adr,masstr[i].msg,masstr[i].data);
  53.     }
  54.  
  55.  
  56.     return 0;
  57.  
  58. }

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы