В каждом четном числе поменять местами младший байт со старшим - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д