Найти такие элементы (а также их сумму), в которых чередуются четные и нечетные цифры - C (СИ)

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

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

Народ, нужна помощь -без использования массивов и промежуточных файлов для хранения всей последовательности -В программе обязательно применение функций с передаваемыми параметрами. И кто может, ссылку где подробно про эти параметры написано, пожалуйста.

Решение задачи: «Найти такие элементы (а также их сумму), в которых чередуются четные и нечетные цифры»

textual
Листинг программы
#include <stdio.h>
 
#define test(a, b) ( ( (a) ^ (b) ) & 1 )
int check(unsigned n) {
    if ( n > 99 )
        return ( test(n, n / 10) ) ? check(n / 10) : 0;
    else if ( n > 9 )
        return test(n, n / 10);
    else
        return 0;
}
 
int main(void) {
    unsigned n;
    
    while ( printf("Number: ") && scanf("%u", &n) == 1 )
        printf("%s\n", ( check(n) ) ? "OK" : "FAIL");
    
    return 0;
}

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

  1. Включаем файл стандартного ввода/вывода (stdio.h)
  2. Определяем функцию с именем test, которая принимает два целых числа a и b и возвращает 1, если их суммы цифр четных и нечетных — это чередуется, и 0 в противном случае.
  3. В функции проверки чисел (check) используем рекурсию для разбиения числа на десятки и проверяем условие чередования цифр.
  4. Если число больше 99, то рекурсивно вызываем функцию check для десятичной части числа.
  5. Если число больше 9, то проверяем условие чередования цифр.
  6. Если число меньше или равно 9, то возвращаем 0.
  7. В функции main считываем число с помощью функции scanf и выводим результат проверки с помощью функции printf.
  8. Повторяем этот процесс до тех пор, пока пользователь не введет число.

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


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

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

8   голосов , оценка 4.125 из 5
Похожие ответы