Декодировать полученное сообщение c=1100011, если известно, что использовался (7, 4) – код хэмминга. провести кодирование кодом с проверкой четности подробно расписать)

oleca3 oleca3    2   29.05.2019 04:50    25

Ответы
victoriagnyliak victoriagnyliak  27.06.2020 11:25
#include <stdio.h>
#include <stdlib.h>
char input[1024];
int len;

int find_mistake()
  {    
    int i, mistake = 0;
        for (i = 0; i < len; i ++)
                if (input == '1')
                    mistake ^= i + 1;
                return mistake;
  }
     
  int main()
  {    
     int i, mistake = 0;    
     char info[1024];    
     int info_pos = 0;    
     int b = 1;    
     
     printf("Enter code: ");    
     scanf("%s", input);    
     len = strlen(input);    
     for (i = 0; i < len; i++)
             if (input != '0' && input != '1')
            {           
                printf("Invalid code.\n");
                return -1; 
            }
            
      mistake = find_mistake();
          if (mistake)
              {        
              input[mistake - 1] ^= '0' ^ '1';
              mistake = find_mistake();   
         
              if (mistake)     
                 {           
                  printf("Invalid code.\n");
                  return -1;        
                 }   
              }
              
       printf("Fixed code: %s\n", input);
       for (i = 0; i < len; i++)
            if (i + 1 == b)
                  b <<= 1;
            else
               info[info_pos++] = input;
               info[info_pos] = '\0';
               printf("Informational string: %s\n", info);
               return 0;
  }
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика