Создание цикла с циклами, где их количество задается с клавиатуры - C (СИ)
Формулировка задачи:
Добрый вечер!
Сразу к делу...
Человек пишет число (к примеру 7)...
Нужно сделать так чтобы создались 7 циклов (один внутри другого) со своими переменными и т.д. и в результате посчитало суму всех чисел с перебора...
Помогите пожалуйста(
Решение задачи: «Создание цикла с циклами, где их количество задается с клавиатуры»
textual
Листинг программы
/*Функция SumDigits вычисляет сумму цифр числа, переданного ей в качестве аргумента*/ int SumDigits (int number) { int sum = 0; /*Переменная в которой будет накапливаться сумма*/ do { sum += number % 10; /*Прибавляем к sum остаток от деления number на 10 (т.е. последнюю цифру)*/ }while (number /= 10); /*Делим number на 10, целую часть от деления помещаем в number же. Повторяем все до тех пор, пока number не станет равным нулю*/ return sum; /*Возвращаем найденную сумму*/ } int S (int dig) { int i, j, count = 0, end = 10; /*Объявляем переменные для счетчика цикла, счетчика найденных чисел и для верхнего предела цикла*/ if (dig < 1) /*Проверяем разрядность числа, если она меньше единицы возвращаем 0*/ return 0; /*Последнее число разрядности n будет равно 10^n - 1. В первом цикле находим 10^n, -1 представим во втором цикле как строгое неравенство i < end*/ for (i = 1; i < dig; i++) end *= 10; for (i = 0; i < end; i++) for (j = 0; j < end; j++) if ( SumDigits(i) == SumDigits(j)) count++; return count; /*Возвращаем найденное количество чисел*/ }
Объяснение кода листинга программы
- Первый шаг - ввод числа с клавиатуры, значение которого будет использоваться в функции.
- Функция
SumDigits
принимает число в качестве аргумента и возвращает сумму его цифр. - Внутри функции используется цикл
do-while
, который будет выполняться до тех пор, пока число не станет равным нулю. - Внутри цикла происходит прибавление остатка от деления числа на 10 к переменной
sum
. - Затем число делится на 10 и целая часть от деления присваивается обратно в переменную
number
. - После выполнения цикла функция возвращает сумму цифр числа.
- Следующая функция
S
принимает число в качестве аргумента и возвращает количество чисел с заданным количеством цифр. - Внутри функции объявляются переменные
i
,j
,count
иend
, которые будут использоваться в циклах. - Затем происходит проверка на разрядность числа. Если разрядность меньше единицы, функция возвращает 0.
- Затем происходит вычисление верхнего предела для второго цикла. Он равен 10 в степени разрядности числа минус 1.
- Первый цикл вычисляет 10 в степени разрядности числа.
- Второй цикл проверяет, есть ли числа с одинаковым количеством цифр.
- Если найдено совпадение, переменная
count
увеличивается на 1. - После выполнения второго цикла функция возвращает количество найденных чисел.
- Значение переменной
count
будет использовано в качестве результата выполнения функции.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д