Определить кодовое смещение 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);
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек для работы с русским языком и вводом-выводом.
  2. Объявление переменных:
    • i - для цикла;
    • k - кодовое смещение;
    • setlocale(LC_ALL,Rus) - установка русской локали для корректного отображения русских символов;
    • offset - для хранения разности между символами;
    • expr - исходное предложение;
    • encrypted - зашифрованное предложение;
    • decrypted - расшифрованное предложение;
    • decrypted_letter - расшифрованный первый символ;
  3. Заполнение исходного предложения в массив expr;
  4. Шифрование исходного предложения с помощью добавления кодового смещения k к каждому символу и сохранение результата в массив encrypted;
  5. Вывод зашифрованного предложения;
  6. Вычисление разности между первым расшифрованным символом и первым зашифрованным символом (для определения направления сдвига);
  7. Вычисление кодового смещения;
  8. Вывод расшифрованного предложения;
  9. Вывод кодового смещения.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.667 из 5
Похожие ответы