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

И снова палиндром - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ программа которая по номеру дня в году выводит число и месяц http://www.cyberforum.ru/cpp-beginners/thread349113.html
программа которая по номеру дня в году выводит число и месяц (например, 7-й день года — 7 января) что б при запуске появилось сообщение (Введите номер дня в году ) ну и вводим от 1 до 365 например 20 и выводится надпись (20 января)
C++ текстовый документ и масив господа подскажите, вот в текстовом документе мы имеем допустим фразу "Hello World" как мне её от туда извлеч и сделать что бы она была в символьном масиве. Заранее огромное всем спасибо!!! http://www.cyberforum.ru/cpp-beginners/thread349087.html
Запуск программы после ввода её названия C++
Подскажите пожалуйста какой аргумент нужно вводить в cin, чтобы когда пользователь прописывал название программы например calc.exe, а затем нажимал клавишу ввод - она запускалась ? Вот код: #include <iostream> #include <windows.h> #include <conio.h> using namespace std; int a; int main(){ while (1) { cout << "type a program name" <<' ';
C++ Hello, World!
Добрый день. Купил книгу Б.Страуструпа - Принципы и практика использования С++, Напечатал первый код , при компиляции выскочили ошибки. #include "std_lib_facilities.h" int main() { cout << "Hello, World!\n"; return 0; }
C++ Проблема с vector http://www.cyberforum.ru/cpp-beginners/thread349028.html
Объявляю булевый вектор vector<bool> used; затем заполняю его false'ами for (int i=0; i<n; i++) used = false; выходит ошибка при компиляции: Debug Assertion Failed!
C++ Посоветуйте среду программирования на С++ для новичков CodeBlocks к сожалению немного не правильно работает =( http://www.cyberforum.ru/cpp-beginners/thread347740.html#post1957942 Есть что-нибудь похожее? подробнее

Показать сообщение отдельно
x1Mike7x
 Аватар для x1Mike7x
214 / 127 / 6
Регистрация: 06.11.2010
Сообщений: 234
07.09.2011, 22:35     И снова палиндром
Примерно такой алгоритм:
- считываем строку всех возможных символов ( в примере - латинские в верхнем регистре )
- в массив-счётчик закидываем количество каждой буквы
- бежим по массиву-счётчику, для каждой буквы закидываем в две строковые переменные ( начало и конец палиндрома ) по 1 символу, которые соответствует поточному символу
- если остался еще 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
string S, Start = "", End = "", Centr = "", R = "";
unsigned Count[26] = {};
 
cin >> S;
for ( unsigned i = 0; i < S.size(); ++i )
    ++Count[ S[i] - 'A' ];
 
for ( unsigned i = 0; i < 26; ++i )
{
    for ( unsigned k = Count[i]; k > 1; k -= 2 )
    {
        Start += i + 'A';
        End += i + 'A';
    }
    if ( Count[i] && Centr.empty() )
        Centr += i + 'A';
}
 
R = Start + Centr;
for ( unsigned i = End.size() - 1; i + 1; --i )
    R += End[i];
 
cout << R << endl;
 
Текущее время: 03:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru