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

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

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

Сгенерировать 15 случайных чисел, в каждом из которых есть указанная цифра из клавы.

Решение задачи: «Сгенерировать 15 случайных чисел, в каждом из которых есть указанная цифра»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
 
#define MAX_DIGITS (6)
#define NUMBERS_NEEDED (15)
 
int main(void) {
    int digit, number, i, j, power;
    
    srand(time(NULL));
    
    printf("Digit: ");
    if ( scanf("%d", &digit) != 1 || digit < 0 || digit > 9 )
        return 1;
    
    for ( i = 0; i < NUMBERS_NEEDED; ++i ) {
        power = (int)pow(10.0, rand() % MAX_DIGITS);
        number = 0;
        for ( j = (int)pow(10.0, MAX_DIGITS); j; j /= 10 )
            number += ( ( j == power ) ? digit : rand() % 10 ) * j;
        printf("%d\n", number);
    }
 
    return 0;
}

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

  1. Подключение необходимых библиотек для работы со случайными числами и временной меткой
  2. Определение максимального количества цифр в числе (6), которое будет использоваться в генерации случайных чисел
  3. Установка количества чисел, которые нужно сгенерировать (15)
  4. Объявление переменных: digit (цифра), number (число), i (счетчик), j (счетчик), power (мощность)
  5. Инициализация генератора случайных чисел с помощью текущего времени
  6. Вывод на экран запроса на ввод цифры
  7. Проверка корректности ввода. Если ввод некорректен, программа завершается
  8. Основной цикл, который генерирует и выводит на экран 15 случайных чисел
  9. Генерация случайной мощности для каждого числа, начиная с 0 и до максимального значения (включительно)
  10. Инициализация числа, которое будет генерироваться, значением 0
  11. Основной цикл внутри основного цикла, который генерирует каждую цифру числа, начиная с самой старшей (с наибольшей мощностью) до самой младшей (с наименьшей мощностью)
  12. Если цифра в текущей позиции равна заданной цифре, то она добавляется в число, умноженная на соответствующую мощность
  13. После завершения внутреннего цикла, число выводится на экран
  14. Программа завершается

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


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

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

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