
Вопрос задан 31.07.2023 в 02:38.
Предмет Информатика.
Спрашивает Асилова Аяулым.
Найти количество слов, оканчивающихся на букву а . C++ . Союз "а" - не слово, учесть ситуации,
когда после слова, оканчивающегося на а стоит "," "." "!" и "?"

Ответы на вопрос

Отвечает Муратова Дмитрий.
#include <iostream>
#include <Windows.h>
using namespace std;
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
char s[128]; size_t i = 1; int c=0;
cin.getline(s, 128); s[strlen(s)] = ' ';
for(size_t i=1; i<strlen(s); i++)
if (s[i] == 'а' && s[i - 1]!=' ' && (s[i + 1] == ' ' || s[i + 1] == ',' || s[i + 1] == '.' || s[i + 1] == '!' || s[i + 1] == '?'))
c++;
cout << c << endl;
system("pause");
return 0;
}
Писал на Visual Studio 2017



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Для решения этой задачи вам нужно будет пройти по каждому слову в тексте и проверить, оканчивается ли оно на букву "а", и учитывать условия, когда после такого слова стоит ",", ".", "!" или "?". Вот пример программы на C++, которая решает эту задачу:
cpp#include <iostream>
#include <string>
using namespace std;
bool isWordEndingWithA(string word) {
if (word.empty()) return false;
char lastChar = word.back();
return (lastChar == 'a' || lastChar == 'A');
}
bool isValidEnding(char ch) {
return (ch == ',' || ch == '.' || ch == '!' || ch == '?');
}
int countWordsEndingWithA(string text) {
int count = 0;
bool isPrevWordEndingWithA = false;
string word;
for (char ch : text) {
if (isalpha(ch)) {
word.push_back(ch);
} else {
if (isWordEndingWithA(word)) {
if (!isPrevWordEndingWithA && !isValidEnding(ch)) {
count++;
}
}
isPrevWordEndingWithA = isWordEndingWithA(word);
word.clear();
}
}
// Check the last word after the loop
if (isWordEndingWithA(word) && !isPrevWordEndingWithA) {
count++;
}
return count;
}
int main() {
string text = "Эта программа написана на языке C++. Она считает количество слов, оканчивающихся на букву а.";
int result = countWordsEndingWithA(text);
cout << "Количество слов, оканчивающихся на букву 'а': " << result << endl;
return 0;
}
Обратите внимание, что в данном коде мы учитываем регистр символов, поэтому слова, оканчивающиеся на "А" также будут учтены. Если это не требуется, просто удалите условие lastChar == 'A'
в функции isWordEndingWithA
.


Похожие вопросы
Топ вопросов за вчера в категории Информатика

Информатика 2132

Информатика 63

Информатика 14

Информатика 32

Информатика 19

Информатика 15

Информатика 175

Информатика 31

Информатика 48
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili