Дано предложение. Расположить слова в порядке возрастания числа букв в них - C (СИ)
Формулировка задачи:
Помогите пожалуйста с задачей: Дано предложение. Расположить слова в порядке возрастания числа букв в них.
Заранее спасибо кто откликнется
Решение задачи: «Дано предложение. Расположить слова в порядке возрастания числа букв в них»
textual
Листинг программы
/*Дано предложение. Расположить слова в порядке возрастания числа букв */ #include <stdio.h> #include <string.h> #include <stdlib.h> #define SIZE 1024 //max length of text #define LEN 20 //max length of word char **ArrayOfWords(char *s, int &num, int &rows) { char **arr, *word; int i, N; N = strlen(s) / 2; arr = (char**) malloc(N); for (i = 0; i<N; i++) arr[i] = (char*) malloc(LEN); word = strtok (s," ,.-"); strcpy(arr[0], word); i = 1; while (word != NULL) { word = strtok (NULL, " ,.-"); if (word == NULL) break; strcpy(arr[i], word); i++; } rows = N; //max number of words num = i; //real number of words return arr; } void Swap (char *a, char *b) { char *temp = (char*) malloc (LEN); strcpy(temp, a); strcpy(a, b); strcpy(b, temp); } void Sorted (char **arr, int num) { int i, j; for (i = 0; i<num-1; i++) for (j = i+1; j<num; j++) if (strlen(arr[i]) > strlen(arr[j])) Swap (arr[i], arr[j]); } int main() { char buf[SIZE], **arr; int i, M = 0, rows = 0; //M - real number of words printf("Your string:\n"); fgets(buf, SIZE, stdin); buf[strlen(buf) - 1] = '\0'; arr = ArrayOfWords(buf, M, rows); Sorted (arr, M); printf("\n\nThe words sorted:\n"); for (i = 0; i<M; i++) puts(arr[i]); getchar(); return 0; }
Объяснение кода листинга программы
В данном коде на языке C представлена функция, которая принимает в качестве параметров строку, указатель на количество слов и указатель на количество строк.
Функция сначала разбивает входную строку на слова, используя разделители ,.-
, затем выделяет память под массив указателей на слова.
Далее функция сортирует полученный массив слов в порядке возрастания длины слов.
В основной функции программы вызывается функция ArrayOfWords для разбиения входной строки на слова и подсчета количества слов.
Затем вызывается функция Sorted для сортировки слов.
Наконец, с помощью цикла выводятся отсортированные слова.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д