В каждом четном числе поменять местами младший байт со старшим - C (СИ)
Формулировка задачи:
В каждом четном числе поменять местами младший байт со старшим. После
замены определить количество четных чисел. Не могу сделать .
Решение задачи: «В каждом четном числе поменять местами младший байт со старшим»
textual
Листинг программы
#include <stdio.h> #include <stdint.h> int main(void){ unsigned i, k; uint16_t a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; unsigned n = sizeof(a)/sizeof(a[0]); for(i = 0; i < n; ++i){ if(! (a[i] & 1)) a[i] = (a[i] << 8) | (a[i] >> 8); } for(k = i = 0; i < n; ++i){ if(! (a[i] & 1)) ++k; } printf("count even: %u\n", k); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и целочисленными значениями.
- Объявление переменных: — i — счётчик для внешнего цикла; — k — счётчик для внутреннего цикла; — a — массив, в котором будет выполняться операция инвертирования байтов.
- Инициализация массива a шестнадцатеричными числами от 1 до 9.
- Вычисление размера массива a в байтах и сохранение его в переменную n.
- Первый цикл for, который перебирает все элементы массива a.
- Внутри цикла проверяется, является ли текущий элемент чётным числом (остаток от деления на 2 равен нулю).
- Если число чётное, то выполняется операция инвертирования байтов: старший байт сдвигается влево на 8 позиций, а младший байт сдвигается вправо на 8 позиций.
- Второй цикл for, который перебирает все чётные числа массива a.
- Внутри цикла проверяется, является ли текущий элемент чётным числом.
- Если число чётное, то счётчик k увеличивается на единицу.
- Вывод на экран количества чётных чисел в массиве a.
- Конец функции main.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д