
Вопрос задан 23.06.2023 в 12:29.
Предмет Информатика.
Спрашивает Сивер Артём.
ПОМОГИТЕ, ПРОВЕРЬТЕ ПЖ КОД #include #include using namespace std; int main() { int b = 0;
string s; getline(cin, s); int a = 0; int maxa = 0; for (int i = 0; i < s.size(); i++){ if ((s[i] >= 65 && s[i] <= 90) || (s[i] >= 97 && s[i] <= 122)){ a++; } else{ b = a; a = 0; } if (a > b){ maxa = a; } } for (int i = 0; i < s.size(); i++){ if ((s[i] >= 65 && s[i] <= 90) || (s[i] >= 97 && s[i] <= 122)){ if ((s[i] + maxa) <= 90 && (s[i] >= 65 && s[i] <= 90) || ((s[i] + maxa) <= 122 && (s[i] >= 97 && s[i] <= 122))){ s[i] = s[i] + maxa; } if((s[i] + maxa) > 90 && s[i] >= 65 && s[i] <= 90){ s[i] = 64 + (maxa - (90 - s[i])); } if((s[i] + maxa) > 122 && (s[i] >= 97 && s[i] <= 122)){ s[i] = 96 + (maxa - (122 - s[i])); } } cout << (char)s[i]; } } Шифровка Стало известно, что противник шифрует текст следующим образом. Сначала определяется количество букв в самом длинном слове, его длину обозначим k (словом называется непрерывная последовательность английских букв, слова друг от друга отделяются любыми другими символами, длина слова не превышает 20 символов). Затем каждая английская буква заменяется на букву, стоящую в алфавите на k букв позже (алфавит считается циклическим, то есть после буквы Z стоит буква A). Другие символы остаются неизменными. Строчные буквы при этом остаются строчными, а заглавные — заглавными. Расшифруйте найденную шифровку. Входные данные На вход программе подается текст шифровки, состоящей не более чем из 250 символов. Выходные данные Выведите исходный текст. Примеры ВводZb Ra Ca Dab Ra. ВыводCe Ud Fd Gde Ud.

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

Отвечает Волкова Валерия.
Ответ:
компилируется точно





Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Ваш код имеет несколько ошибок, которые могут привести к неправильным результатам. В частности, у вас есть проблемы с обработкой символов, которые не являются буквами. Я предлагаю вам исправить код следующим образом:
cpp#include <iostream>
#include <string>
using namespace std;
int main() {
int b = 0;
string s;
getline(cin, s);
int a = 0;
int maxa = 0;
for (int i = 0; i < s.size(); i++) {
if ((s[i] >= 'A' && s[i] <= 'Z') || (s[i] >= 'a' && s[i] <= 'z')) {
a++;
} else {
b = a;
a = 0;
}
if (a > b) {
maxa = a;
}
}
for (int i = 0; i < s.size(); i++) {
if ((s[i] >= 'A' && s[i] <= 'Z') || (s[i] >= 'a' && s[i] <= 'z')) {
char base = (s[i] >= 'a') ? 'a' : 'A';
s[i] = base + (s[i] - base + maxa) % 26;
}
cout << s[i];
}
return 0;
}
Теперь код должен корректно расшифровывать текст, как описано в задаче.


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

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

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

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

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

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

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

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