Форум программистов, компьютерный форум CyberForum.ru

Сортировать слова по количеству букв (по возрастанию) - C++

Восстановить пароль Регистрация
 
Rovecrew
1 / 1 / 0
Регистрация: 06.03.2014
Сообщений: 25
10.05.2014, 21:01     Сортировать слова по количеству букв (по возрастанию) #1
Задано строку из трех слов. Выделить отдельные слова и записать их в массив, рассортировав по количеству букв (по возрастанию). Вывести массив слов на экран.

написал програму, но она не сортирует,
исправьте пожалуйста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
// Lab13Y.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
 
//-----------------------------------------------------------------------------
void Swap(char* a, char* b)
{
    char tmp = *a;
    *a = *b;
    *b = tmp;
}
void sort(char* begin, char* end)
{
    while (begin < end)
    {
        Swap(begin++, end--);
    }
}
 
 
void sortallwords(char *text, int count)
{
    char* begin;
 
    register int a, b;
    register char t;
    while (*text)
        
    for (a = 1; a < count; ++a)
        for (b = count - 1; b >= a; --b) {
            if (text[b - 1] > text[b]) {
                /* exchange elements */
                t = text[b - 1];
                text[b - 1] = text[b];
                text[b] = t;
            }
            sort(begin, text - 1);
        }
}
 
int main()
{
    char text[256] = { '\0' };
 
    printf("input text: ");
    fgets(text, sizeof(text)-1, stdin);
 
    sortallwords(text, strlen(text));
 
    printf("result: %s", text);
 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rikimaru2013
C++ Game Dev
 Аватар для rikimaru2013
2133 / 966 / 222
Регистрация: 30.11.2013
Сообщений: 3,231
10.05.2014, 21:09     Сортировать слова по количеству букв (по возрастанию) #2
C++
1
2
3
4
5
6
7
8
char text[256] = { '\0' };
 
    printf("input text: ");
    fgets(text, sizeof(text)-1, stdin);
 
    sortallwords(text, strlen(text));
 
    printf("result: %s", text);
1) Была дана строка и вывел строку. Где массив, что просили в задании?
2) Знаете массив созданный в куче?
Rovecrew
1 / 1 / 0
Регистрация: 06.03.2014
Сообщений: 25
10.05.2014, 21:11  [ТС]     Сортировать слова по количеству букв (по возрастанию) #3
есть войд свап, он в войде сорт, а войд сорт в войде сортвсех слов
rikimaru2013
C++ Game Dev
 Аватар для rikimaru2013
2133 / 966 / 222
Регистрация: 30.11.2013
Сообщений: 3,231
10.05.2014, 21:14     Сортировать слова по количеству букв (по возрастанию) #4
Попробую еще раз:
.... Вывести массив слов на экран.

Это:
C++
1
2
for(int i=0;i<size;i++)
    cout << arr_of_texts[i] << endl;
Rovecrew
1 / 1 / 0
Регистрация: 06.03.2014
Сообщений: 25
10.05.2014, 21:16  [ТС]     Сортировать слова по количеству букв (по возрастанию) #5
спасибо,
поправьте пожалуйста войд sortallwords(он сортирует слова)
Yandex
Объявления
10.05.2014, 21:16     Сортировать слова по количеству букв (по возрастанию)
Ответ Создать тему
Опции темы

Текущее время: 21:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru