Добавил:
ИВТ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

кейс / Koder

.txt
Скачиваний:
0
Добавлен:
05.10.2023
Размер:
1.18 Кб
Скачать
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {

  srand(time(NULL));

  char message[14];

  // Генерируем случайное 14-битное сообщение
  for(int i=0; i<14; i++) {
    message[i] = rand() % 2 + '0';
  }

  int index = 0;

  // Разбиваем на группы по 3 бита
  for(int i=0; i<14; i+=3) {

    // Берем 3 бита
    char bits[5];
    bits[0] = message[i];
    bits[1] = message[i+1];
    bits[2] = message[i+2];

    // Считаем бит четности
    int parity = 0;
    for(int j=0; j<3; j++) {
      if(bits[j] == '1') parity++;
    }

    // Добавляем бит четности
    if(parity % 2 == 0) {
      bits[3] = '0';
    } else {
      bits[3] = '1';
    }

    // Проверка делимости на 3
    int ones = 0;
    int zeroes=0;
    for(int j=0; j<3; j++) {
      if(bits[j] == '1') ones++;
      if(bits[j] == '0') zeroes++;
    }
    bits[4] = (ones % 3 == 0) ? '0' : '1';
    bits[4] = (zeroes % 3 == 0) ? '0' : '1';
    // Форматируем вывод
    for(int j=0; j<3; j++) {
      printf("%c", bits[j]);
    }
    for(int j=3; j<5; j++) {
      printf("%c", bits[j]);
    }
    printf("\n");
  }

  return 0;
}
Соседние файлы в папке кейс