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