Строка вводится с клавиатуры(максимум 99 символов). Первое слово должно быть с маленькой буквы или первая и последняя буквы этого слова не должны совпадать(иначе такое слово как Test не засчитается). Также будет засчитываться одна буква(abc d efg, буква d подходит, так как она и первая и последняя)
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
#include <cstring>
using std::strtok;
using std::strlen;
int main()
{
char a[100], *ptr;
cout << "Enter the string:" << endl;
cin.getline(a, 100);
cout << endl;
ptr = strtok(a, "., ");
while(ptr)
{
if(*ptr == *(ptr + strlen(ptr) - 1))
{
cout << ptr << ' ';
}
ptr = strtok(NULL, "., ");
}
cout << endl;
return 0;
}
Задача легко решается с кругов Эйлера. Жаль, что возможности Знаний.сом не позволяют рисовать. Попробую обяснить на пальцах. У нас есть три круга, которые состоят из ребят посетивших кино, театр и цирк. Эти круги пересекаются все три - это кто был в трех местах или попарно - те, кто был в двух местах.
Сложим количество ребят побывавших в цирке, кино и театре 11+25+17=53
Так как некоторые из них побывали в двух местах, то, чтобы исключить двойной подсчет мы их из обшей суммы вычтем
53-10-4-6=33
В классе всего 36 учеников, но так как двое вообще никуда не ходили, то 36-2=34 - остается 34.
Следовательно 34-33=1. Получается один человек был во всех трех местах (кино, цирк, театр).
Подробнее - на -