Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/55: Рейтинг темы: голосов - 55, средняя оценка - 4.95
Nirvana

Чётные слова в строке

02.02.2011, 01:29. Показов 11847. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ввести строку. На экран вывести все чётные слова.


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
#include "StdAfx.h"
#include<conio.h>
#include <ctime>
#include <iostream> 
#include <math.h>
#include <string>
using namespace std;
 
 
int main()
 
 {   
     string b[10];
         string s;
     string slovo;
     int i,k;
     getline(cin,s);
     k=0;
     slovo="";
     for (i=0; i<s.size(); i++)
         if (s[i]!=' ') slovo=slovo+s[i];
         else if (slovo.size()%2==0)
         {   
             k++;
             b[k]=slovo;
             slovo = "";
         }
         
         for (i=1;i<=k; i++)
        cout<<b[i]<<"\n"; 
     getch();
     return 0;
 }
Программа почему-то выводит неправильные результат, подскажите где ошибка? С++ изучать начал недавно, так что пока не очень разбираюсь.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.02.2011, 01:29
Ответы с готовыми решениями:

Поменять местами все четные и нечетные слова в строке
Задана строка символов, содержащая два или более слов, разделенных пробелами. Написать программу, меняющую местами все четные и нечетные...

Переставить в строке все элементы из нечетных позиций на четные, а четные на нечетные
В квадратном массиве содержатся как отрицательные, так и положительные элементы. Если среднее арифметическое в строке массива по модулю...

Переставить в строке все элементы матрицы из нечетных позиций на четные, а четные на нечетные, по условию
Доброго времени суток. Прошу помощи решить задачку к экзамену, задача звучит так: Поиск не помог, а изучать катастрофически не...

5
14 / 14 / 1
Регистрация: 26.01.2011
Сообщений: 64
02.02.2011, 01:58
неправельно построен алгоритм,
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
#include<conio.h>
#include <ctime>
#include <iostream> 
#include <math.h>
#include <string>
using namespace std;
int main() 
 {   
         setlocale (LC_CTYPE, ".1251"); //для русского языка
         setlocale (LC_MONETARY, ".1251"); //для русского языка
         string str; // сюда введём строку
         string slova; // сюда слова которые чётные
         int i,k=1; //i -счётчик , k - равен 1,потому что когда будет найден следующий пробел(k станет равным 2,и мы будем записывать в slova пока не встретим пробел
         cout<<"Введите строку:";
         getline(cin,str);
         for (int i=0; i<str.size(); i++)
         switch(str[i]) //оператор развитления(условный оператор) похож на if ,только может проверять много параметров,тоесть чему равен елемент
         {
         case ' ':slova+=' ';k++;break;//если встретили пробел - повышаем k на единицу
         default:
             if((k %2)==0)slova+=str[i]; //  k %2 - проверка на кратность
             break; 
         }
          for(int i=0;i<slova.size();++i) 
              cout<<slova[i]<<' '; //выводим отфильтрованые только чётные слова
         _getch();
     return 0;
 }
программа работает по принцыпу пробелом,сколько находит,то и выводит =))) если поставиш больше одного пробела будет неправельно считать,если важно неучитывать пробелы перед словами,можно доработать код,что его весьма утяжелит
1
 Аватар для x1Mike7x
222 / 135 / 19
Регистрация: 06.11.2010
Сообщений: 234
02.02.2011, 02:02
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
#include <iostream> 
#include <string>
 
using namespace std;
 
int main()
{   
    string b[10], s, slovo="";
    int i, k=0;
    getline(cin, s);
    for (i=0; i<=s.size(); i++)
        //Условие (s[i]!=' ') не совсем верное, ведь могут же еще быть точки, запятые и т.д.
        //Проверяем на принадлежание символа к латиннице
        if (isalpha(s[i])) 
            slovo += s[i];
        else if (slovo.size()%2==0)
        {   
            b[k] = slovo;
            k++;
            slovo = "";
        }
        else
            slovo = "";  // не забываем обнулить строку если условие чётности не получилось      
    for (i=0; i<k; i++)
        cout<<b[i]<<"\n"; 
    system("pause");
    return 0;
}
2
14 / 14 / 1
Регистрация: 26.01.2011
Сообщений: 64
02.02.2011, 02:07
Цитата Сообщение от Nirvana Посмотреть сообщение
if (slovo.size()%2==0)
что етим ты хотел проверить?
функция size,возвращает количество елементов,тоесть количество в строке _слово_ и ты его проверяеш на кратность 2-м ?))

Добавлено через 2 минуты
ооооо,нужно было найти слова количество букв которых чётное?))) а я все чётные слова по счёту думал =))))))))
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
02.02.2011, 02:35
описывайте задание более точно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//чётные слова в строке
#include <iostream>
#include <sstream>
#include <algorithm>
int main()
{
    std::string str;
    std::getline(std::cin, str);
    std::string tmp;
    std::istringstream ss(str);
    int words = 1 + (int)std::count_if(str.begin(), str.end(), [](char c) { return c == ' '; });
    for( int i = 1; i <= words; i++ )
    {
    ss >> tmp;
    if( !(i % 2) ) std::cout << tmp << std::endl;
    }
    std::cin.get();
    std::cin.get();
    return 0;
}
Добавлено через 16 минут
Цитата Сообщение от sadok Посмотреть сообщение
слова количество букв которых чётное
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <sstream>
#include <algorithm>
int main()
{
    std::string str;
    std::getline(std::cin, str);
    std::string tmp;
    std::istringstream ss(str);
    int words = 1 + (int)std::count_if(str.begin(), str.end(), [](char c) { return c == ' '; });
    for( int i = 1; i <= words; i++ )
    {
        ss >> tmp;
        if( !(tmp.size() % 2) ) std::cout << tmp << std::endl;
    }
    std::cin.get();
    std::cin.get();
    return 0;
}
1
Nirvana
02.02.2011, 14:21
Всем спасибо! Разобрался.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.02.2011, 14:21
Помогаю со студенческими работами здесь

В строке подсчитать сумму кодов символов каждого слова. Слова в строке разделены пробелами
нашел функцию для вычисления суммы кодов символов на форуме, но как переделать её под динамический массив? #include &lt;iostream&gt; ...

В строке найти чётные слова, в которых нет удвоенной буквы "и" и вывести эти слова в новую строку
Задать произвольную строку символов. Группу символов, разделенную с одной или с обеих сторон одним или несколькими пробелами и не...

В строке перевернуть четные слова и удалить нечетные
В строке перевернуть четные слова и удалить нечетные. Не использую при этом процедуры. Программа правильная, она прекрасно работает,НО...

Удалить четные по порядку слова в входной строке

Поменять местами все четные и нечетные слова в строке
Задана строка символов, содержащая два или более слов, разделенных пробелами. Написать программу, меняющую местами все четные и нечетные...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru