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

Дана строка. Вывести слова в порядке их уменьшения - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Изменить порядок следования элементов массива на обратный http://www.cyberforum.ru/cpp-beginners/thread368902.html
Привет всем! Нужна помощь по решению задачи на языке С++. Принципиально я знаю как решать, но не могу никак именно чтобы результат был именно тот который требуется, начало знаю как писать а вот дальше я запутался, вот сама задача. Дан одномерный массив целых чисел. Окончание ввода элементов является "0". Изменить порядок следования элементов массива на обратный. Вроде бы задача и...
C++ Помогите найти комплексное число. Заранее благодарный!! Найти комплексное число, через которое можно выразить числа1915056+558558j и 3682200+1073975j используя целый множитель, если это возможно. http://www.cyberforum.ru/cpp-beginners/thread368879.html
Ошибки CodeBlocks C++
Создаю многофайловый проект. Сама программа целиком работает. когда разделяю на файлы выдает такие ошибки: I:\Spiski\proc.cpp|13|error: 'NULL' was not declared in this scope| I:\Spiski\proc.cpp||In function 'void Print(List*)':| I:\Spiski\proc.cpp|28|error: 'cout' was not declared in this scope| I:\Spiski\proc.cpp|28|error: 'endl' was not declared in this scope| I:\Spiski\proc.cpp||In...
написать программу которая рассчитывает расстояние N точек на плоскости. Координаты х и у. C++
Значит занимаемся программированием 3ье занятие а препод в институте уже задает огого задачки)) Вот в чем проблема. Нужно написать программу которая рассчитывает расстояние N точек на плоскости. Координаты х и у. Как выделить память я знаю, открыть файл и скопировать данные в массив тоже знаю мне не понятна сама логика программы. Нужно написать функцию но с этим я думаю сам справлюсь. Помогите...
C++ Кластерный анализ. Метод k-means. http://www.cyberforum.ru/cpp-beginners/thread368865.html
Доброе время суток! Помогите пожалуйста найти рабочую программную реализацию метода k-средних (для любых входных данных). Очень срочно надо. ----------------------- Алгоритм k-средних строит k кластеров, расположенных на возможно больших расстояниях друг от друга. Основной тип задач, которые решает алгоритм k-средних, - наличие предположений (гипотез) относительно числа кластеров, при этом...
C++ Двусмысленная ситуация при наследовании Вообщем хочу вызвать виртуальный метод через указать Класса Three ? выдает ошибку, но не пишет какую... Прошу помочь #include<iostream> using namespace std; typedef int TYP; enum COLOR{black,white,green}; class One { public: подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
19.10.2011, 17:23     Дана строка. Вывести слова в порядке их уменьшения
Kovbaska, вот на Си
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <string.h>//strlen strtok
#include <stdlib.h>//malloc
#include <stdio.h>//printf scanf
 
int main()
{
    char ch;//Символ служит условием продолжения или окончания 
    //do while
    char str[1025] = {0};//Думаю 1024 символов с лихвой хватит
    char buf[1025] = {0};//Буфер строки ввода
    char *tok;//Указатель на слово в строке
    char delim[] = " !?.,;";//возможные разделители между словами
    long i,j,bfr,nWords = 0;//Число слов в строке
    long * WordLen;//Указатель на массив с длинами слов
    do
    {
        printf("\tEnter input string\n");
        //В str введенная строка (можно с пробелами)
        scanf("%[^\n]%c",str,&ch);//В ch \n от ввода можно этого не делать
        sprintf(buf,"%s",str);
        
        tok = strtok(buf,delim);
        while(tok)
        {
            nWords++;
            tok = strtok(NULL,delim);
        }
        WordLen = (long *)malloc(nWords*sizeof(long));
        sprintf(buf,"%s",str);
        //Записываем в WordLen длины слов строки
        i = 0;
        tok = strtok(buf,delim);
        while(tok)
        {
            WordLen[i] = strlen(tok);
            tok = strtok(NULL,delim);
            i++;
        }
        //Сортируем длины выводимых слов
        for(i = 0; i < nWords; i++)
        for(j = i + 1; j < nWords; j++)
        {
            if(WordLen[j] < WordLen[i])
            {
                bfr = WordLen[i];
                WordLen[i] = WordLen[j];
                WordLen[j] = bfr;
            }
        }
 
        //Выводим слова по возрастанию числа символов в них
        printf("\tWords in string:\n");
        for(i = 0; i < nWords; i++)
        {
            sprintf(buf,"%s",str);
            tok = strtok(buf,delim);
            while(tok && i < nWords)
            {
                if(WordLen[i] == strlen(tok))
                {
                    printf("%s\n",tok);
                    //Пробираем слова одинаковой длинны
                    if(i < nWords - 1)
                    if(WordLen[i] == WordLen[i + 1])
                        i++;
                }
                tok = strtok(NULL,delim);
            }
        }
        free((void *)WordLen);
        printf("Enter 1 for new input\n");
        scanf("%d",&i);
    }
    while(i == 1);
    return 0;
}
Миниатюры
Дана строка. Вывести слова в порядке их уменьшения  
 
Текущее время: 11:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru