N7Ved

Лабораторная работа №3

Oct 13th, 2019
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.87 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <conio.h>
  4. #include <math.h>
  5. #include <stdlib.h>
  6. #include <string.h>
  7.  
  8. void main()
  9. {
  10.     system("chcp 1251");
  11.     char string[9],prov[3];
  12.     int oshb, vib;
  13.     printf("Для кодировки введите 0, для декодировки 1:");
  14.     scanf("%i\n",&vib);
  15.     printf_s("Введите сообщение: ",vib);
  16.     switch (vib)
  17.     {
  18.     case 0:
  19.         fgets(string, 5, stdin);
  20.         for (int i = 4; i >= 0; i--) {
  21.         string[i + 2] = string[i];
  22.     }
  23.         string[0] = ' ';
  24.         for (int i = 6; i >= 1; i--) {
  25.         string[i + 1] = string[i];
  26.     }
  27.    
  28.         for (int i = 7; i >= 3; i--) {
  29.         string[i + 1] = string[i];
  30.     }
  31.         string[1] = (((string[3] + string[5] + string[7]) - 3 * '0') % 2) + '0'; // кодирование
  32.         string[2] = (((string[3] + string[6] + string[7]) - 3 * '0') % 2) + '0';
  33.         string[4] = (((string[5] + string[6] + string[7]) - 3 * '0') % 2) + '0';
  34.         printf("Закодированное сообщение: %s \n", string);
  35.         break;
  36.        
  37.     case 1:
  38.         fgets(string, 8, stdin);
  39.         for (int i = 7; i != -1; i--){
  40.             string[i + 1] = string[i]; }
  41.         string[0] = ' ';
  42.         prov[0] = (((string[3] + string[5] + string[7]) - 3 * '0') % 2) + '0'; // ищем ошибку
  43.         prov[1] = (((string[3] + string[6] + string[7]) - 3 * '0') % 2) + '0';
  44.         prov[2] = (((string[5] + string[6] + string[7]) - 3 * '0') % 2) + '0';
  45.         if (prov[0] != string[1]) { prov[0] = 1; }
  46.         else prov[0] = 0;
  47.         if (prov[1] != string[2]) { prov[1] = 2; }
  48.         else prov[1] = 0;
  49.         if (prov[2] != string[4]) { prov[2] = 4; }
  50.         else prov[2] = 0;
  51.         oshb = prov[0] + prov[1] + prov[2];
  52.         if (oshb != 0) {
  53.             if (string[oshb] == '0') string[oshb] = '1';
  54.             else string[oshb] = '0';
  55.             printf("\nИсправление сообщение: ");
  56.             puts(string);
  57.         }
  58.         string[8] = 0;
  59.         printf("\nИсходное сообщение: %c%c%c%c\n", string[3], string[5], string[6], string[7]);
  60.         system("pause");
  61.         break;
  62. }
  63. }
Add Comment
Please, Sign In to add comment