1

Тема: Ввести речення і розмістити його слова в алфавітному порядку.

Ввести речення і розмістити його слова в алфавітному порядку. Для відокремлення слів використовувати пробіл

#include <iostream> 
#include <string.h>
#include <conio.h>
using namespace std;
int main()

{
    const int n = 5;
    char sp[n][5], r[5];
    int  k;

    cout << "Введіть речення ";
    for (k = 0; k < n; k++)
    {
        cin.getline(sp[k], sizeof(sp[k]) - 1);
    }


    for (k = 1; k < n; k++)
        for (k = 0; k < n - k; k++)
            if (strcmp(sp[k], sp[k + 1]) > 0)
            {
                strcpy(r, sp[k]);
                strcpy(sp[k], sp[k + 1]);
                strcpy(sp[k + 1], r);
            }
    cout << "\n Відформатоване речення \n";
    for (k = 0; k < n; k++)
        cout << sp[k] << endl;
    getch();
}
Подякували: koala1

2

Re: Ввести речення і розмістити його слова в алфавітному порядку.

Ви хотіли щось спитати чи просто похвалитися?

3

Re: Ввести речення і розмістити його слова в алфавітному порядку.

Програма не працює. Хотіла спитатися що виправити щоб програма працювала

4

Re: Ввести речення і розмістити його слова в алфавітному порядку.

"Не працює" - дуже поганий опис проблеми. Зазвичай, якщо все, що можна сказати - це "не працює", то це означає, що не вмикається комп'ютер. В іншому разі пишіть конкретно, що ви робите, що очікуєте побачити і що бачите. Існують тисячі причин, чому програма може "не працювати", і дуже неприємно гратися в партизана з людиною, яка ніби хоче, щоб їй допомогли.

Подякували: leofun011

5

Re: Ввести речення і розмістити його слова в алфавітному порядку.

Спробував запустити. Після вводу (який, до речі, теж висне, якщо вводити слова з більш ніж трьох літер — проте, його ще можливо пройти...) програма гарантовано висне. Імовірно, проблема у вкладених циклах сортування.
По-перше, зовнішній і внутрішній цикл використовують одну й ту ж змінну k як лічильник (що робить такий код беззмістовним, а цикл — нескінченним. Просто створіть дві змінні з різними іменами і використайте як лічильники зовнішнього та внутрішнього циклу).

Друге потенційне джерело помилок — якщо є цикл for (k = 1; k < n; k++), а в ньому здійснюється доступ до sp[k + 1], то коли k досягне значення n-1, k+1 дорівнюватиме n — індекс вилізе за межі масиву. Хоча якби там було sp[k - 1], то все було б у межах масива. Втім, оскільки одну із змінних k ви все одно маєте перейменувати, щоб позбутись вічного циклу, подальше виправлення цієї частини залежатиме від того, як саме ви їх перейменуєте.

Подякували: ira8811

6

Re: Ввести речення і розмістити його слова в алфавітному порядку.

Спробував запустити.

Нащо? Невже не видно, що це нісенітниця?
задачка нескладна, але щось мені і за попередніх раків не віддячили, тому ці будуть з обрізанням

Прихований текст

https://replace.org.ua/uploads/images/6053/ccb508e41e02d39771978e474aaf50e3.png

Подякували: ira8811