Выяснить является ли сумма цифр двузначным числом - C (СИ)
Формулировка задачи:
1)Дано двузначное число. Выяснить: является ли сумма цифр двузначным числом. Больше ли числа
N их сумма.
2) Найти 15 первых натуральных чисел, делящихся на 19. Левая граница интервала поиска равна 141
Решение задачи: «Выяснить является ли сумма цифр двузначным числом»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
size_t task1(int i)
{
size_t s = 0;
while (i)
{
s += i % 10;
i /= 10;
}
return s;
}
void task2(size_t count)
{
size_t i = 19;
for (; i < 441 && count; i += 19, count--)
printf("%zu ", i);
printf("\n");
}
int main()
{
size_t s = 0;
int i = 345;
const int n = 56;
s = task1(i);
printf("Between 10 and 99: %s\n", (s >= 10 && s < 100) ? "true" : "false");
printf("%zu greater then %d: %s\n", s, n, (s > n) ? "true" : "false");
task2(15);
return EXIT_SUCCESS;
}
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
- Определяется функция
task1, которая принимает двузначное число в качестве параметра и возвращает сумму его цифр - В функции
task2используется циклfor, который выполняет вывод на экран последовательности двузначных чисел от 19 до 440 (исключительно) с шагом 19, пока не кончится счетчикcount - В функции
mainсперва инициализируются переменныеsиiсо значениями 0 и 345 соответственно - Затем вызывается функция
task1для вычисления суммы цифр числаi, результат сохраняется в переменнойs - Выводится сообщение, указывающее является ли сумма цифр двузначным числом (используется оператор тернарного условия)
- Выводится сообщение, указывающее является ли сумма цифр больше числа
n(используется оператор тернарного условия) - Затем вызывается функция
task2с аргументом 15 (определяет количество итераций цикла) - В конце функции
mainвозвращается код успеха