Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <conio.h>
- #include <math.h>
- #include <stdlib.h>
- #include <string.h>
- void main()
- {
- system("chcp 1251");
- char string[9],prov[3];
- int oshb, vib;
- printf("Для кодировки введите 0, для декодировки 1:");
- scanf("%i\n",&vib);
- printf_s("Введите сообщение: ",vib);
- switch (vib)
- {
- case 0:
- fgets(string, 5, stdin);
- for (int i = 4; i >= 0; i--) {
- string[i + 2] = string[i];
- }
- string[0] = ' ';
- for (int i = 6; i >= 1; i--) {
- string[i + 1] = string[i];
- }
- for (int i = 7; i >= 3; i--) {
- string[i + 1] = string[i];
- }
- string[1] = (((string[3] + string[5] + string[7]) - 3 * '0') % 2) + '0'; // кодирование
- string[2] = (((string[3] + string[6] + string[7]) - 3 * '0') % 2) + '0';
- string[4] = (((string[5] + string[6] + string[7]) - 3 * '0') % 2) + '0';
- printf("Закодированное сообщение: %s \n", string);
- break;
- case 1:
- fgets(string, 8, stdin);
- for (int i = 7; i != -1; i--){
- string[i + 1] = string[i]; }
- string[0] = ' ';
- prov[0] = (((string[3] + string[5] + string[7]) - 3 * '0') % 2) + '0'; // ищем ошибку
- prov[1] = (((string[3] + string[6] + string[7]) - 3 * '0') % 2) + '0';
- prov[2] = (((string[5] + string[6] + string[7]) - 3 * '0') % 2) + '0';
- if (prov[0] != string[1]) { prov[0] = 1; }
- else prov[0] = 0;
- if (prov[1] != string[2]) { prov[1] = 2; }
- else prov[1] = 0;
- if (prov[2] != string[4]) { prov[2] = 4; }
- else prov[2] = 0;
- oshb = prov[0] + prov[1] + prov[2];
- if (oshb != 0) {
- if (string[oshb] == '0') string[oshb] = '1';
- else string[oshb] = '0';
- printf("\nИсправление сообщение: ");
- puts(string);
- }
- string[8] = 0;
- printf("\nИсходное сообщение: %c%c%c%c\n", string[3], string[5], string[6], string[7]);
- system("pause");
- break;
- }
- }
Add Comment
Please, Sign In to add comment