Найти сумму и произведение цифр случайного трехзначного числа на языке C

Задача. Сгенерировать случайное трехзначное целое число. Найти сумму и произведение его цифр.

Пояснение. В языке программирования C функция rand() генерирует случайное целое число от 0 до определенной целочисленной константы, весьма большое значение которой задано в заголовочном файле stdlib.h (подробнее в уроке "Случайные числа в Си").

Алгоритм решения задачи:

  1. Выражение rand() % 900 вернет любое число от 0 до 899 включительно (т.е. остаток от деления на 900). Если прибавить 100, то получим любое число от 100 до 999. Числовой промежуток [100, 999] охватывает все возможные трехзначные числа.
  2. Первая цифра числа извлекается делением нацело на 100. В языке C целочисленное деление не имеет специального знака, оно применяется автоматически, если оба операнда целые числа.
  3. Последняя цифра числа представляет собой остаток от целочисленного деления на 10.
  4. Средняя цифра числа извлекается в два этапа. Сначала избавляются от последней цифры, деля нацело на 10, а затем находят остаток от деления на 10.

Исходный код решения задачи:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    int n;  // трехзначное число
    char a, b, c;  // хранение цифр числа
    srand(time(NULL));  // задается зерно для случ.чисел

    n = rand() % 900 + 100;
    printf("%d\n", n);

    a = n / 100;
    b = n / 10 % 10;
    c = n % 10;

    printf("Сумма: %d\n", a + b + c);
    printf("Произведение: %d\n", a * b * c);
}

Пример выполнения кода:

154
Сумма: 10
Произведение: 20