Вопрос задан 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.
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Волкова Валерия.

Ответ:

компилируется точно



0 0
Отвечает нейросеть 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; }

Теперь код должен корректно расшифровывать текст, как описано в задаче.

0 0

Похожие вопросы

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

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

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