Определить кодовое смещение k и расшифровать предложение - C (СИ)
Формулировка задачи:
Дано зашифрованное предложение на русском языке и его расшифрованный первый символ C. Определить кодовое смещение k и расшифровать предложение.
Решение задачи: «Определить кодовое смещение k и расшифровать предложение»
textual
Листинг программы
/*Дано зашифрованное предложение на русском языке и его расшифрованный первый символ C. Определить кодовое смещение k и расшифровать предложение.*/ #include <stdio.h> #include <locale.h> int main() { int i; int k=5; setlocale(LC_ALL,"Rus"); int offset; char expr[50]="Скажи-ка, дядя, ведь не даром"; char encrypted[50]={0}; char decrypted[50]={0}; char decrypted_letter='С'; for(i=0;i<strlen(expr);i++) { encrypted[i]=k+expr[i]; } puts("Исходная строка:"); printf("%s\n\n",expr); if(decrypted_letter>encrypted[0]){ offset=decrypted_letter-encrypted[0]; } else{ offset=encrypted[0]-decrypted_letter; } puts("Зашифрованная строка:"); printf("%s\n\n",encrypted); for(i=0;i<strlen(encrypted);i++) { decrypted[i]=encrypted[i]-offset; } puts("Расшифрованная строка:"); printf("%s\n\n",decrypted); printf("Кодовое смещение равно:%d \n",offset); }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с русским языком и вводом-выводом.
- Объявление переменных:
- i - для цикла;
- k - кодовое смещение;
- setlocale(LC_ALL,
Rus
) - установка русской локали для корректного отображения русских символов; - offset - для хранения разности между символами;
- expr - исходное предложение;
- encrypted - зашифрованное предложение;
- decrypted - расшифрованное предложение;
- decrypted_letter - расшифрованный первый символ;
- Заполнение исходного предложения в массив expr;
- Шифрование исходного предложения с помощью добавления кодового смещения k к каждому символу и сохранение результата в массив encrypted;
- Вывод зашифрованного предложения;
- Вычисление разности между первым расшифрованным символом и первым зашифрованным символом (для определения направления сдвига);
- Вычисление кодового смещения;
- Вывод расшифрованного предложения;
- Вывод кодового смещения.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д