Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2014, 21:59   #1
fynjysss
Новичок
Джуниор
 
Регистрация: 05.10.2014
Сообщений: 1
По умолчанию Не могу найти ошибку в программе

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

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


Код:
#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;
}

Последний раз редактировалось Stilet; 05.10.2014 в 22:51.
fynjysss вне форума Ответить с цитированием
Старый 05.10.2014, 22:13   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

бонус за кусок исходника.
поэтому исходник я не читал.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу найти ошибку в программе на С++ Jony217 Общие вопросы C/C++ 9 28.12.2011 21:53
Не могу найти ошибку в программе Doomsday Помощь студентам 1 14.11.2011 18:53
Не могу найти ошибку в программе. Елеша Помощь студентам 0 06.05.2011 23:45
Не могу найти ошибку в программе lioshenka Общие вопросы C/C++ 5 24.08.2009 11:38
Не могу найти ошибку в программе Dawystrik Общие вопросы Delphi 9 19.03.2009 21:19