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

Дописать код сортировки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывести слово, которое можно выложить из данного количества палочек http://www.cyberforum.ru/cpp-beginners/thread1187485.html
256 мегабайт, 2 секунды У пятиклассника Димы есть N счётных палочек, и он очень любит выкладывать из этих палочек слова. Однажды Дима пришёл из школы, где на уроке английского языка узнал написание нескольких новых английских слов. Он хотел бы выложить каждое из этих слов из счётных палочек, но ему надо ещё готовить уроки на завтра. Поэтому Дима решил выбрать одно слово и выложить только...
C++ Считать с файла книги после заданного года В общем, программа добавляет книги в файл, считывает их оттуда, и всякое разное.. Случилась одна проблема: не могу я считать из файла только те книги которые были изданы после указанного мной с клавиатуры кода:cry: может, кто свежим глазом глянет, что я не так делаю, или может предложения есть как его вывести? то я уже руки опускаю. при нажатии цифры "2" должен происходить запрос о дате и считка... http://www.cyberforum.ru/cpp-beginners/thread1187481.html
Построить график по точкам из файла C++
У меня есть файл, в котором есть координаты моих точек и еще всякий мусор. Мне надо считать координаты с этого файла и построить график по ним. Я написал прогу для построения прямой по 2 точкам, но не могу её протестировать потому, что на мониторе всякий мусор.(Работаю в borland C++). Скажите правильно ли эта программа работает и если я запишу координаты этих точек в 2 массива и задам цикл для...
C++ Функции и массивы
1. Написать функцию, проверяющую по возрастанию или убыванию упорядочена указанная строка двумерного массива. Упорядочить по возрастанию все строки двумерного массива, которые не упорядочены по убыванию. 2. Найти максимальный из повторяющихся элементов двумерного массива. Очень нужно, заранее спасибо.
C++ Цилиндрическая заготовка с радиусом основания R и прямо угольный брус http://www.cyberforum.ru/cpp-beginners/thread1187467.html
Цилиндрическая заготовка с радиусом основания R и прямо угольный брус со сторонами А и В имеют одинаковую длину. Заданы N наборов значений R,A,B (т.е. N пар "заготовка-брус"). Определить, в каком числе случаев (из N возможных) можно из заготовки указанного радиуса выпилить брус указанного сечения и найти суммарную площадь именно таких брусьев.
C++ Реализовать отложенную загрузку Здравствуйте! Помогите в моей программе реализовать отложенную загрузку... Вот код программы: #include <iostream.h> #include <windows.h> using namespace std; typedef double* __stdcall (*CreateVectorType)(int rows); typedef void __stdcall (*InitializeVectorType)(double *vector,int rows); подробнее

Показать сообщение отдельно
Ysida
0 / 0 / 0
Регистрация: 18.05.2014
Сообщений: 9

Дописать код сортировки - C++

25.05.2014, 14:26. Просмотров 133. Ответов 0
Метки (Все метки)

Что дописать,если строчек у меня n штук,нужно удалять лишние символы разделители, т.е. идет у меня подряд .,; и так после каждого слова есть лишние символы-разделители,оставался лишь первый разделитель, и не нуждающиеся в сортировке строки тоже нужно удалить.
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
77
78
79
#include <iostream>
#include <cctype>
#include <cstring>
 
int NumbersOfWords (const char *str)
{
    int k = 0;
    int length = std::strlen(str);
    bool flag = false;
    for (int i=0; i<=length; i++)
    {
        if ((!std::isalpha(str[i]) || str[i]=='\0') && flag)
        {
            ++k;
            flag = false;
        }
        else if (std::isalpha(str[i]) && !flag)
            flag = true;
    }
    return k;
}
 
const int maxLength = 128;
 
struct Word
{
    int length;
    char str[maxLength];
};
 
int main()
{
    char str[maxLength]="", temp[maxLength];
    std::cin.get(str,maxLength);
    Word *mas = new Word[NumbersOfWords(str)];
    int length = std::strlen(str), tempLength;
    int i = 0, k = 0;
    while (i<length)
    {
        if (std::isalpha(str[i]))
        {
            tempLength = 0;
            std::strcpy (temp,"");
            while (i<length && std::isalpha(str[i]))
            {
                temp[tempLength] = str[i];
                ++tempLength;
                ++i;
            }
            temp[tempLength] = '\0';
            mas[k].length = tempLength;
            std::strcpy (mas[k].str, temp);
            ++k;
        }
        else ++i;
    }
    Word tmp;
    bool flag;
    do
    {
        flag = true;
        for (int i=0; i<k-1; i++)
        {
            if (mas[i].length > mas[i+1].length)
            {
                tmp = mas[i];
                mas[i] = mas[i+1];
                mas[i+1] = tmp;
                flag = false;
            }
        }
    }
    while (!flag);
    for (int i=0; i<k; i++)
        std::cout <<mas[i].str <<' ';
    std::cout <<'\n';
    delete [] mas;
    return 0;
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru