#include <stdio.h>
int main() {
char text[200] = "Сегодня ясно. Будет солнце! Завтра холодно?";
char words[20][30]; // массив слов
int i = 0, j = 0, k = 0, word_count = 0;
char c;
printf("Исходный текст: %s\n", text
); printf("\nПосле сортировки слов:\n");
while (text[i] != '\0') {
word_count = 0;
k = 0;
// Собираем слова до конца предложения
while (text[i] != '\0' && text[i] != '.' && text[i] != '!' && text[i] != '?') {
if (text[i] == ' ') {
if (k > 0) {
words[word_count][k] = '\0';
word_count++;
k = 0;
}
} else {
words[word_count][k] = text[i];
k++;
}
i++;
}
// Последнее слово
if (k > 0) {
words[word_count][k] = '\0';
word_count++;
}
// Запоминаем конец предложения
c = text[i];
if (text[i] != '\0') i++;
// Сортируем слова (пузырьком)
for (int m = 0; m < word_count - 1; m++) {
for (int n = 0; n < word_count - 1 - m; n++) {
int p = 0;
while (words[n][p] != '\0' && words[n+1][p] != '\0' && words[n][p] == words[n+1][p]) {
p++;
}
if (words[n][p] > words[n+1][p]) {
// Меняем слова местами
char temp[30];
int t = 0;
while (words[n][t] != '\0') {
temp[t] = words[n][t];
t++;
}
temp[t] = '\0';
t = 0;
while (words[n+1][t] != '\0') {
words[n][t] = words[n+1][t];
t++;
}
words[n][t] = '\0';
t = 0;
while (temp[t] != '\0') {
words[n+1][t] = temp[t];
t++;
}
words[n+1][t] = '\0';
}
}
}
// Выводим отсортированное предложение
for (int m = 0; m < word_count; m++) {
if (m
< word_count
- 1) printf(" "); }
if (c
!= '\0') printf("%c ", c
); }
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbigpIHsKICAgIGNoYXIgdGV4dFsyMDBdID0gItCh0LXQs9C+0LTQvdGPINGP0YHQvdC+LiDQkdGD0LTQtdGCINGB0L7Qu9C90YbQtSEg0JfQsNCy0YLRgNCwINGF0L7Qu9C+0LTQvdC+PyI7CiAgICBjaGFyIHdvcmRzWzIwXVszMF07IC8vINC80LDRgdGB0LjQsiDRgdC70L7QsgogICAgaW50IGkgPSAwLCBqID0gMCwgayA9IDAsIHdvcmRfY291bnQgPSAwOwogICAgY2hhciBjOwoKICAgIHByaW50Zigi0JjRgdGF0L7QtNC90YvQuSDRgtC10LrRgdGCOiAlc1xuIiwgdGV4dCk7CiAgICBwcmludGYoIlxu0J/QvtGB0LvQtSDRgdC+0YDRgtC40YDQvtCy0LrQuCDRgdC70L7QsjpcbiIpOwoKICAgIHdoaWxlICh0ZXh0W2ldICE9ICdcMCcpIHsKICAgICAgICB3b3JkX2NvdW50ID0gMDsKICAgICAgICBrID0gMDsKCiAgICAgICAgLy8g0KHQvtCx0LjRgNCw0LXQvCDRgdC70L7QstCwINC00L4g0LrQvtC90YbQsCDQv9GA0LXQtNC70L7QttC10L3QuNGPCiAgICAgICAgd2hpbGUgKHRleHRbaV0gIT0gJ1wwJyAmJiB0ZXh0W2ldICE9ICcuJyAmJiB0ZXh0W2ldICE9ICchJyAmJiB0ZXh0W2ldICE9ICc/JykgewogICAgICAgICAgICBpZiAodGV4dFtpXSA9PSAnICcpIHsKICAgICAgICAgICAgICAgIGlmIChrID4gMCkgewogICAgICAgICAgICAgICAgICAgIHdvcmRzW3dvcmRfY291bnRdW2tdID0gJ1wwJzsKICAgICAgICAgICAgICAgICAgICB3b3JkX2NvdW50Kys7CiAgICAgICAgICAgICAgICAgICAgayA9IDA7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB3b3Jkc1t3b3JkX2NvdW50XVtrXSA9IHRleHRbaV07CiAgICAgICAgICAgICAgICBrKys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaSsrOwogICAgICAgIH0KICAgICAgICAvLyDQn9C+0YHQu9C10LTQvdC10LUg0YHQu9C+0LLQvgogICAgICAgIGlmIChrID4gMCkgewogICAgICAgICAgICB3b3Jkc1t3b3JkX2NvdW50XVtrXSA9ICdcMCc7CiAgICAgICAgICAgIHdvcmRfY291bnQrKzsKICAgICAgICB9CgogICAgICAgIC8vINCX0LDQv9C+0LzQuNC90LDQtdC8INC60L7QvdC10YYg0L/RgNC10LTQu9C+0LbQtdC90LjRjwogICAgICAgIGMgPSB0ZXh0W2ldOwogICAgICAgIGlmICh0ZXh0W2ldICE9ICdcMCcpIGkrKzsKCiAgICAgICAgLy8g0KHQvtGA0YLQuNGA0YPQtdC8INGB0LvQvtCy0LAgKNC/0YPQt9GL0YDRjNC60L7QvCkKICAgICAgICBmb3IgKGludCBtID0gMDsgbSA8IHdvcmRfY291bnQgLSAxOyBtKyspIHsKICAgICAgICAgICAgZm9yIChpbnQgbiA9IDA7IG4gPCB3b3JkX2NvdW50IC0gMSAtIG07IG4rKykgewogICAgICAgICAgICAgICAgaW50IHAgPSAwOwogICAgICAgICAgICAgICAgd2hpbGUgKHdvcmRzW25dW3BdICE9ICdcMCcgJiYgd29yZHNbbisxXVtwXSAhPSAnXDAnICYmIHdvcmRzW25dW3BdID09IHdvcmRzW24rMV1bcF0pIHsKICAgICAgICAgICAgICAgICAgICBwKys7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAod29yZHNbbl1bcF0gPiB3b3Jkc1tuKzFdW3BdKSB7CiAgICAgICAgICAgICAgICAgICAgLy8g0JzQtdC90Y/QtdC8INGB0LvQvtCy0LAg0LzQtdGB0YLQsNC80LgKICAgICAgICAgICAgICAgICAgICBjaGFyIHRlbXBbMzBdOwogICAgICAgICAgICAgICAgICAgIGludCB0ID0gMDsKICAgICAgICAgICAgICAgICAgICB3aGlsZSAod29yZHNbbl1bdF0gIT0gJ1wwJykgewogICAgICAgICAgICAgICAgICAgICAgICB0ZW1wW3RdID0gd29yZHNbbl1bdF07CiAgICAgICAgICAgICAgICAgICAgICAgIHQrKzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgdGVtcFt0XSA9ICdcMCc7CgogICAgICAgICAgICAgICAgICAgIHQgPSAwOwogICAgICAgICAgICAgICAgICAgIHdoaWxlICh3b3Jkc1tuKzFdW3RdICE9ICdcMCcpIHsKICAgICAgICAgICAgICAgICAgICAgICAgd29yZHNbbl1bdF0gPSB3b3Jkc1tuKzFdW3RdOwogICAgICAgICAgICAgICAgICAgICAgICB0Kys7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHdvcmRzW25dW3RdID0gJ1wwJzsKCiAgICAgICAgICAgICAgICAgICAgdCA9IDA7CiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRlbXBbdF0gIT0gJ1wwJykgewogICAgICAgICAgICAgICAgICAgICAgICB3b3Jkc1tuKzFdW3RdID0gdGVtcFt0XTsKICAgICAgICAgICAgICAgICAgICAgICAgdCsrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB3b3Jkc1tuKzFdW3RdID0gJ1wwJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8g0JLRi9Cy0L7QtNC40Lwg0L7RgtGB0L7RgNGC0LjRgNC+0LLQsNC90L3QvtC1INC/0YDQtdC00LvQvtC20LXQvdC40LUKICAgICAgICBmb3IgKGludCBtID0gMDsgbSA8IHdvcmRfY291bnQ7IG0rKykgewogICAgICAgICAgICBwcmludGYoIiVzIiwgd29yZHNbbV0pOwogICAgICAgICAgICBpZiAobSA8IHdvcmRfY291bnQgLSAxKSBwcmludGYoIiAiKTsKICAgICAgICB9CiAgICAgICAgaWYgKGMgIT0gJ1wwJykgcHJpbnRmKCIlYyAiLCBjKTsKICAgIH0KCiAgICBwcmludGYoIlxuIik7CiAgICByZXR1cm4gMDsKfQo=