Отсортировать строки по длине в порядке возрастания методом сравнения - C (СИ)
Формулировка задачи:
Отсортировать строки по длине в порядке возрастания методом сравнения.(не используя указатели)
Максимальное кол-во строк 6, максимальное кол-во символов в строке 80.
Никак не могу придумать как это реализовать, может кто-нибудь подсказать?
Решение задачи: «Отсортировать строки по длине в порядке возрастания методом сравнения»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#define line 80
#define column 6;
int main(){
setlocale(LC_ALL,"rus");
char array_a[column][line];
int i, j, k;
for(i = 0, j = 0; i < column; i++){
scanf("%s", array_a);
}
for(k = 0; k < column; k++){
for(i = 0, j = 0; i < column - 1; i++){
if( strlen(array_a[i][j]) > strlen(array_a[i+1][j]) ){
//тут поменяем строки местами через swap вроде
. . .
}
}
}
for(i = 0, j = 0; i < n; i++){
printf("%s\n", array_a[i][j]);
}
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и вводом-выводом, а также установка русской локали.
- Объявление массива строк и инициализация счётчиков для внешнего и внутреннего циклов.
- Считывание строк с помощью функции scanf и сохранение их в массиве.
- Внешний цикл для перебора всех строк в массиве.
- Внутренний цикл для сравнения строк и их последующего перестановления (название и значение переменной, где происходит обмен, не указано).
- Окончание внутреннего цикла и возврат к началу внешнего цикла.
- Вывод отсортированных строк на экран с помощью функции printf.
- Завершение программы с возвратом 0.