Дан массив А$(10). Вывести элементы массива в порядке возрастания - C (СИ)

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

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

Дан массив А$(10) вывести элементы массива в порядке зростания. Спасибо зарание.

Решение задачи: «Дан массив А$(10). Вывести элементы массива в порядке возрастания»

textual
Листинг программы
  1. /* Сортировка сначала по длине, за тем по алфавиту */
  2.  
  3.  #include <stdio.h>
  4.  #include <stdlib.h>
  5.  #include <string.h>
  6.  
  7.  int cmp(const void * a, const void * b) {
  8.     int ret = strlen(*(const char**)a) - strlen(*(const char**)b);
  9.    
  10.     return ( ret ) ? ret : strcmp(*(const char**)a, *(const char**)b);
  11.  }
  12.  
  13.  int main(void) {
  14.     const char* names[] = { "sidorov", "petrov", "kukushkin", "aaron", "gates", "jackson", "jobs", "antonov", "wales", "ivanov" };
  15.     size_t i, count = sizeof(names) / sizeof(char*);
  16.    
  17.     printf("Unsorted:\n");
  18.     for ( i = 0; i < count; ++i )
  19.         printf("%s\n", names[i]);
  20.    
  21.     qsort(names, count, sizeof(char*), cmp);
  22.    
  23.     printf("\nSorted:\n");
  24.     for ( i = 0; i < count; ++i )
  25.         printf("%s\n", names[i]);
  26.    
  27.     return 0;
  28.  }

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

В этом коде используется стандартная функция сортировки qsort() для сортировки массива имен. Функция сортировки использует пользовательскую функцию сравнения cmp(), которая сначала сравнивает имена по длине, а затем по алфавиту. Код выполняет следующие действия:

  1. Включает необходимые заголовочные файлы:
    • stdio.h для работы с консолью
    • stdlib.h для работы с функцией qsort()
    • string.h для работы со строками
  2. Определяет функцию сравнения cmp(), которая принимает два указателя на строки и возвращает отрицательное значение, если первая строка меньше второй по алфавиту, положительное значение, если первая строка больше второй по алфавиту, и ноль, если строки равны.
  3. Определяет основную функцию программы main(), которая:
    • Создает массив строк names[] с десятью именами
    • Выводит все имена в консоль в отсортированном порядке
    • Сортирует массив names[] с помощью функции qsort() и функции сравнения cmp()
    • Выводит все имена в консоль в отсортированном порядке
  4. Завершает программу и возвращает значение 0, указывающее на успешное выполнение.

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


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

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

5   голосов , оценка 4 из 5

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

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

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