Дан массив А$(10). Вывести элементы массива в порядке возрастания - C (СИ)
Формулировка задачи:
Дан массив А$(10) вывести элементы массива в порядке зростания.
Спасибо зарание.
Решение задачи: «Дан массив А$(10). Вывести элементы массива в порядке возрастания»
textual
Листинг программы
- /* Сортировка сначала по длине, за тем по алфавиту */
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- int cmp(const void * a, const void * b) {
- int ret = strlen(*(const char**)a) - strlen(*(const char**)b);
- return ( ret ) ? ret : strcmp(*(const char**)a, *(const char**)b);
- }
- int main(void) {
- const char* names[] = { "sidorov", "petrov", "kukushkin", "aaron", "gates", "jackson", "jobs", "antonov", "wales", "ivanov" };
- size_t i, count = sizeof(names) / sizeof(char*);
- printf("Unsorted:\n");
- for ( i = 0; i < count; ++i )
- printf("%s\n", names[i]);
- qsort(names, count, sizeof(char*), cmp);
- printf("\nSorted:\n");
- for ( i = 0; i < count; ++i )
- printf("%s\n", names[i]);
- return 0;
- }
Объяснение кода листинга программы
В этом коде используется стандартная функция сортировки qsort() для сортировки массива имен. Функция сортировки использует пользовательскую функцию сравнения cmp(), которая сначала сравнивает имена по длине, а затем по алфавиту. Код выполняет следующие действия:
- Включает необходимые заголовочные файлы:
stdio.h
для работы с консольюstdlib.h
для работы с функциейqsort()
string.h
для работы со строками
- Определяет функцию сравнения cmp(), которая принимает два указателя на строки и возвращает отрицательное значение, если первая строка меньше второй по алфавиту, положительное значение, если первая строка больше второй по алфавиту, и ноль, если строки равны.
- Определяет основную функцию программы main(), которая:
- Создает массив строк
names[]
с десятью именами - Выводит все имена в консоль в отсортированном порядке
- Сортирует массив
names[]
с помощью функцииqsort()
и функции сравненияcmp()
- Выводит все имена в консоль в отсортированном порядке
- Создает массив строк
- Завершает программу и возвращает значение 0, указывающее на успешное выполнение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д