Вопрос задан 05.10.2018 в 23:20. Предмет Информатика. Спрашивает Вернер Диана.

Помогите, пожалуйста, найти ошибку в программе. не все тесты проходит на сайте. Текст задачи: Текст

на английском языке записан в массиве a[1..1000] of char. Помимо английских букв, в нем могут встречаться пробелы и знаки препинания. В массиве b['A'..'Z'] of integer получите сведения о том, сколько каких букв встречается в этом тексте. При подсчете строчные и прописные буквы не различать. Входные данные На вход программе сначала подается значение n1000 — количество букв в тексте. В следующей строке входных данных расположены сами буквы (без разделителей). Выходные данные Выдайте 26 чисел — значения элементов массива b. Сама программа: #include using namespace std; int main() { int b[26], N, i, k; char a[1000], m; cin>>N; for(i=0;i { cin>>a[i]; a[i]=toupper(a[i]); } for(m='A';m<='Z';m++) b[m]=0; for(m='A';m<='Z';m++) for(i=0;i if(a[i]==m) b[m]++; for(m='A';m<='Z';m++) cout< return 0; }
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Фурс Даша.
For(i=0;i if(a[i]==m
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

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

```cpp #include using namespace std;

int main() { int b[26] = {0}; // Инициализируем массив нулями int N; char a[1000];

cin >> N; for (int i = 0; i < N; i++) { cin >> a[i]; a[i] = toupper(a[i]); // Приводим к верхнему регистру }

for (int i = 0; i < N; i++) { if (isalpha(a[i])) { // Проверяем, является ли символ буквой b[a[i] - 'A']++; // Индекс массива вычисляется как разница между ASCII-кодами символов } }

for (char m = 'A'; m <= 'Z'; m++) { cout << b[m - 'A'] << " "; }

return 0; } ```

В этой версии программы я внес несколько изменений:

1. Использовал `isalpha` для проверки, является ли символ буквой. 2. Использовал выражение `a[i] - 'A'` для вычисления правильного индекса массива `b`. 3. Убрал лишний цикл `for` в конце программы. 4. Использовал более современный синтаксис C++.

Теперь программа должна правильно считывать входные данные и выдавать корректный результат.

0 0

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

Последние заданные вопросы в категории Информатика

Задать вопрос