Есть ответ 👍

Создать собственную таблицу .закодировать сообщение: носит сеня в сени сено,спать на сене будет сеня.

196
444
Посмотреть ответы 2

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

danilfkr
4,6(16 оценок)

не пользуйся одной таблицей, это не безопасно. : ) я советую создавать отдельную таблицу для каждой сессии.

извини, если код будет плохо читаться. этот сайт не поддерживает табуляцию и не умеет обрабатывать код.

/* only for windows */

#include < stdio.h>

#include < stdlib.h>

#include < stdbool.h>

#include < string.h>

#include < time.h>

#include < conio.h>

#include < windows.h>

#define alph_size 67

#define str_size_max 256

#define random_min 33

#define random_max 126

int main(void) {

handle handle = getstdhandle(std_output_handle);

 

setconsolecp(1251);

setconsoleoutputcp(1251);

srand(time(null)); /* for "visible" random */

char str[str_size_max];

printf("введите строку: ");

scanf("%[^\n]s", str);

printf("\n");

/* encode only these symbols */

char alph[alph_size] = "абвгежзиклмнопрстуфхцчшщъыьэюя" \

  "абвгдежзиклмнопрстуфхцчшщъыьэюя ";

 

char genalph[alph_size];

 

int i;

for (i = 0; i < alph_size; i++) {

  /* for beauty */

  if ((i % 5 == 0) & & (i ! = 0)) {  

  printf("\n");  

  }

 

  genalph[i] = random_min + rand() % (random_max - random_min + 1);

 

  /* that don't use goto */

  if (i > 0) {

  if (genalph[i - 1] == genalph[i]) {

    while (genalph[i - 1] == genalph[i]) {

    genalph[i] = random_min + rand() % (random_max - random_min + 1);

    }

  }

  }

 

  setconsoletextattribute(handle, 10 | 0); /* set symbol color to green */

  printf("%c", alph[i]);

  setconsoletextattribute(handle, 7 | 0); /* set symbol color to white */

 

  printf(" = %c; ", genalph[i]);

}

 

printf("\n\n");

 

char buf[str_size_max] = "";

 

for (i = 0; i < (int) strlen(str); i++) {

  bool coded = false;

 

  int j;

  for (j = 0; j < alph_size; j++) {

  if (str[i] == alph[j]) {

    buf[i] = genalph[j];

    coded = true;

  }

  }

 

  if (! coded) {

  buf[i] = str[i];

  }

}

 

printf("закодированная строка: %s", buf);

 

getch();

return 0;

}

пример из программы:

введите строку: носит сеня в сени сено,спать на сене будет сеня.

а = }; б = `; в = ~; г = 8; д = ^;

е = q; ж = 6; з = > ; и = m; к = *;

л = ? ; м = v; н = m; о = s; п = };

р = & ; с = p; т = s; у = \; ф = $;

х = h; ц = ]; ч = g; ш = n; щ = 0;

ъ = y; ы = [; ь = i; э = 5; ю = i;

я = u; а = n; б = \; в = s; г = _;

д = k; е = 5; ж = #; з = c; и = g;

к = ~; л = < ; м = /; н = t; о = 6;

п = t; р = '; с = i; т = d; у = e;

ф = 0; х = o; ц = w; ч = q; ш = ';

щ = 6; ъ = h; ы = /; ь = h; э = a;

ю = [; я = ';   = h; . = j; , = w;

! = }; ? = @;

закодированная строка: tspmshiqmuh~hpqmmhpqmswp}}sihm}hpqmqh`\^qshiqmuj

таблица даётся только на время сессии и теряет свой смысл после завершения программы. : )


% - деление с остатком, выдает нам остаток короче говоря.

print(23%2) выведет 1

ответ: 1

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS