В каждом четном числе поменять местами младший байт со старшим - C (СИ)

Узнай цену своей работы

Формулировка задачи:

В каждом четном числе поменять местами младший байт со старшим. После замены определить количество четных чисел. Не могу сделать .

Решение задачи: «В каждом четном числе поменять местами младший байт со старшим»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdint.h>
  3.  
  4. int main(void){
  5.     unsigned i, k;
  6.     uint16_t a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
  7.     unsigned n   = sizeof(a)/sizeof(a[0]);
  8.  
  9.     for(i = 0; i < n; ++i){
  10.         if(! (a[i] & 1))
  11.             a[i] = (a[i] << 8) | (a[i] >> 8);
  12.     }
  13.    
  14.     for(k = i = 0; i < n; ++i){
  15.         if(! (a[i] & 1))
  16.             ++k;
  17.     }
  18.     printf("count even: %u\n", k);
  19.     return 0;
  20. }

Объяснение кода листинга программы

  1. Подключение необходимых библиотек для работы с файлами и целочисленными значениями.
  2. Объявление переменных: — i — счётчик для внешнего цикла; — k — счётчик для внутреннего цикла; — a — массив, в котором будет выполняться операция инвертирования байтов.
  3. Инициализация массива a шестнадцатеричными числами от 1 до 9.
  4. Вычисление размера массива a в байтах и сохранение его в переменную n.
  5. Первый цикл for, который перебирает все элементы массива a.
  6. Внутри цикла проверяется, является ли текущий элемент чётным числом (остаток от деления на 2 равен нулю).
  7. Если число чётное, то выполняется операция инвертирования байтов: старший байт сдвигается влево на 8 позиций, а младший байт сдвигается вправо на 8 позиций.
  8. Второй цикл for, который перебирает все чётные числа массива a.
  9. Внутри цикла проверяется, является ли текущий элемент чётным числом.
  10. Если число чётное, то счётчик k увеличивается на единицу.
  11. Вывод на экран количества чётных чисел в массиве a.
  12. Конец функции main.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.5 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы