Нужно написать код для этой задачи: В потоке символов сосчитать число слов – палиндромов. Кину 50 символических рублей на:****: Связь Делал какие-то наброски, но не работает, выдает ошибки. Собственно вот что набросал: #include <iostream> #include <string> #define YES 1 #define NO 0 using namespace std; int getchar(void) { int c; // разделители int flag, lenght; // признак слова int k = 0, cnt = 0; // счётчик int found, i; // признак того, что слово-палиндром // начальные присваивания (инициализация переменных) flag = NO; found = NO; // цикл чтения символов из потока while ((c = getchar()) != EOF) { if (c == ' ' || c == '.' || c == '\n' || c == ',') { // найден разделитель if (flag == YES) { // найден первый разделить после слова if (found == YES) { // слово оказалось палиндромом cnt = cnt + 1; } } flag = NO; } else { // проверка палиндрома for (i = 0; i < str.lenght(); i++) { if (str[i] == str[((str.lenght - 1)/2) - i]) { found = YES; k++; if (k == str.lenght()) { printf("polindrom-%s", str); } else { found = NO; flag = YES; } } } } return(0); } Code #include <iostream> #include <string> #define YES 1 #define NO 0 using namespace std; int getchar(void) { int c; // разделители int flag, lenght; // признак слова int k = 0, cnt = 0; // счётчик int found, i; // признак того, что слово-палиндром // начальные присваивания (инициализация переменных) flag = NO; found = NO; // цикл чтения символов из потока while ((c = getchar()) != EOF) { if (c == ' ' || c == '.' || c == '\n' || c == ',') { // найден разделитель if (flag == YES) { // найден первый разделить после слова if (found == YES) { // слово оказалось палиндромом cnt = cnt + 1; } } flag = NO; } else { // проверка палиндрома for (i = 0; i < str.lenght(); i++) { if (str[i] == str[((str.lenght - 1)/2) - i]) { found = YES; k++; if (k == str.lenght()) { printf("polindrom-%s", str); } else { found = NO; flag = YES; } } } } return(0); }