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

C++

Войти
Регистрация
Восстановить пароль
 
fynjysss
0 / 0 / 0
Регистрация: 04.09.2014
Сообщений: 6
#1

Не могу найти ошибку в программе - C++

05.10.2014, 21:30. Просмотров 247. Ответов 0
Метки нет (Все метки)

Есть задание:
Даны строки A и B. Если в A есть символы из B и в B нет повторяющихся символов, то упорядочить символы B в алфавитном порядке, и удалить все символы, кроме латинских букв из A; в остальных случаях упорядочить символы A в порядке, обратном к алфавитному, удалив повторяющиеся символы, и продублировать рус-ские буквы в B.

Помогите найти ошибку, ибо вторая часть задания не выполняется

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
80
81
82
83
84
85
86
87
88
89
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
 
const string end_chars = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM";
const string rus_chars = "ёйцукенгшщзхъфывапролджэячсмитьбюЁЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ";
 
string erase_dublicate(string text)
{
    unique(text.begin(), text.end());
    return text;
}
 
bool have_dublicate(const string& text)
{
    string copy_text = erase_dublicate(text);;
    return copy_text.length() != text.length();
}
 
bool is_Achars_in_Bchars(const string& textA, const string& textB)
{
    for (int i = 0; i < textB.length(); i++)
    {
        if (textA.find(textB[i]) != string::npos)
            return true;
    }
    return false;
}
 
string erase_all_exclude_latin(const string& text)
{
    string erased_text = "";
    for (int i = 0; i < text.length(); i++)
    {
        if (end_chars.find(text[i]) != string::npos)
            erased_text.append(1, text[i]);
    }
    return erased_text;
}
 
string dublicate_rus(const string& text)
{
    string new_text = "";
    for (int i = 0; i < text.length(); i++)
    {
        new_text .append(1, text[i]);
        if (rus_chars.find(text[i]) != string::npos)
            new_text .append(1, text[i]);
    }
    return new_text;
}
 
string SortAlpha(string text)
{
    sort(text.begin(), text.end());
    return text;
}
 
string SortReverseAlpha(const string& text)
{
    string sorted_text = SortAlpha(text);
    reverse(sorted_text.begin(), sorted_text.end());
    return sorted_text;
}
 
int main()
{
    string A, B;
    cout << "Input A and B: " << endl;
    cin >> A >> B;
 
    if (is_Achars_in_Bchars(A, B) && !have_dublicate(B))
    {
        B = SortAlpha(B);
        A = erase_all_exclude_latin(A);
    } else
    {
        A = SortReverseAlpha(A);
        B = erase_dublicate(B);
        B = dublicate_rus(B);
    }
 
    cout << endl << "A: " << A;
    cout << endl << "B: " << B << endl;
 
      system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2014, 21:30     Не могу найти ошибку в программе
Посмотрите здесь:

C++ не могу найти ошибку в программе
C++ Не могу найти ошибку в простейшей программе
C++ Не могу найти ошибку в программе
C++ не могу ошибку найти в программе
C++ Не могу найти ошибку в программе
Не могу найти ошибку в программе C++
C++ Не могу найти ошибку в программе
Не могу найти ошибку в программе C++
Метод хорд (не могу найти ошибку в программе) C++
C++ Не могу найти ошибку в программе
C++ Не могу найти ошибку в программе
C++ Не могу найти ошибку в программе

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru