Упорядочить и вывести строки в порядке возрастания значений их длины - C (СИ)
Формулировка задачи:
Пользователь задает с консоли несколько строк (не больше 10). Упорядочить и вывести строки в порядке возрастания значений их длины.
Решение задачи: «Упорядочить и вывести строки в порядке возрастания значений их длины»
textual
Листинг программы
#include <stdio.h> #include <string.h> #define MAX_STR_LEN 80 int main(){ int i, j, n = 10; printf("Enter n:"); scanf("%d%*c", &n); char** strings = (char**)calloc(n, sizeof(char*)); for(i = 0; i < n; i++){ strings[i] = (char*)calloc(MAX_STR_LEN, sizeof(char)); printf("Enter string #%d: ", i + 1); fgets(strings[i], MAX_STR_LEN - 1, stdin); } for(i = 0; i < n - 1; i++){ for(j = i + 1; j < n; j++){ if(strlen(strings[i]) > strlen(strings[j])){ char* t = strings[i]; strings[i] = strings[j]; strings[j] = t; } } } for(i = 0; i < n; i++){ printf("String #%d: %s", i + 1, strings[i]); } for(i = 0; i < n; i++) free(strings[i]); free(strings); return 0; }
Объяснение кода листинга программы
В этом коде:
- Объявлены переменные:
i
,j
- для циклов;n
- количество строк;strings
- массив указателей на строки;MAX_STR_LEN
- максимальная длина строки.
- Пользователю предлагается ввести количество строк.
- Динамически выделяется память под массив указателей на строки, а затем под каждую строку отдельно.
- Пользователю предлагается ввести строки.
- Строки сортируются в порядке возрастания их длины.
- Отсортированные строки выводятся на экран.
- Все выделенные строки и массив указателей освобождаются.
- Программа завершается, возвращая 0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д