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

Напечатать симметричные слова из строки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ прямоугольная матрица на С http://www.cyberforum.ru/cpp-beginners/thread45152.html
В каждой строке прямоугольной матрицы определить среднее арифметическое S ее элементов, после чего расположить в начале строки элементы А(i,j) < S, сохранив их исходную последовательность, а...
C++ Задача с массивом Здравствуйте!Подскажите пожалуйста в решении такой задачи. Например есть кусок кода: int main(){ int mas; for(int i=0;i<10;i++){ mas=i+1; cout<<mas<<endl;} } Результат... http://www.cyberforum.ru/cpp-beginners/thread45150.html
C++ Снова динамические массивы и функции
int ** A=new int*; for (int i=0;i<(NN+1);i++) A=new int; void ZZ (char *E, int **A, int *N) // преобразует строку вида "1,123,124" в элементы массива ...
C++ решение массива
Не сочтите за сложность помочь с такой задачей: Найти минимальное из чисел, встречающихся в целочисленном массиве X=(x1,x2,...,xn) ровно два раза. Если можно то пришлите алгоритм решения,...
C++ матрицы на с (одна задача) http://www.cyberforum.ru/cpp-beginners/thread45122.html
Уважаемые форумчане, подскажите пожалуйста, где у меня ошибка? /* Элементы каждой строки прямоугольной матрицы заменить их дополнениями до максимального элемента этой же строки....
C++ Частотный анализ строки Помогите пожалуйста дописать программу выполняющую частотный анализ строки, введенной пользователем (т. е. вычисляющей, сколько раз в строку входит данный символ). Рапорт по каждому символу выдавать ... подробнее

Показать сообщение отдельно
Gravity
562 / 556 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
27.07.2009, 18:05
C++
1
if (vec[i]!=vec[vec.size()])
Здесь по-любому выход за границы вектора. Тебе уже сказали выше, должно быть
C++
1
if (vec[i]!=vec[vec.size()-1])
Хотя даже так будет работать неверно, есть еще ошибка в поиске симметричных слов. В целом я бы так сделал
C++
1
2
3
4
5
6
7
8
9
10
for (int i = 0; i < vec.size()-1; i++)
    if (vec[i] != vec[vec.size()-1])
    {
        int j, k;
        for (j = 0, k = vec[i].length()-1; j < k; j++, k--)
            if (vec[i][j] != vec[i][k])
                break;
        if(j >= k)
            cout << vec[i] << endl;
    }
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru