Рекурсивная функция нахождения суммы цифр числа - C (СИ)
Формулировка задачи:
Помогите, пожалуйста, написать рекурсивную функцию нахождения суммы цифр числа
прототип функции void sum_cifr(int,int*);
Решение задачи: «Рекурсивная функция нахождения суммы цифр числа»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
void sum_cifr(int num, int * pCount) {
if (num > 0) {
*pCount += (num % 10);
sum_cifr(num/10, pCount);
}
}
int main() {
int count = 0;
sum_cifr(123, &count);
printf("%d\n", count);
return EXIT_SUCCESS;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек: iostream.h и stdlib.h
- Определение рекурсивной функции с названием sum_cifr, которая принимает два аргумента: целое число num и указатель на переменную count.
- Проверка условия: если num больше нуля, то происходит вычисление последней цифры числа и добавление ее к переменной count.
- Рекурсивный вызов функции sum_cifr с аргументами num/10 (деление числа на 10) и pCount.
- Спецификация прототипа функции main.
- Объявление переменной count типа int и инициализация ее значением 0.
- Вызов функции sum_cifr с аргументами 123 и адрес переменной count.
- Вывод значения переменной count на экран.
- Возврат значения EXIT_SUCCESS из функции main.