Так что я только начинаю учиться кодировать, и, возможно, это потому, что я не до конца понимаю природу циклов.
Итак, я хочу получить вывод:
Если введенное значение равно, например, 6, программа должна выдать следующее:
- 0!= 1
- 1!= 1
- 2!= 2
- 3!= 6
- 4!= 24
- 5!= 120
- 6!= 720
Но вместо этого он печатает это:
Без пулевых точек, очевидно.Очевидно, что второй цикл for не распечатывается должным образом.Я не уверен, почему.Если кто-то может мне помочь, это было бы очень признательно!
РЕДАКТИРОВАТЬ: Я действительно должен был указать, что я ищу.Спасибо за все полезные ответы.Я понимаю, что все ваши решения могут быть действительными, но я ищу решение, которое не включает создание новых процедур и функций. Поскольку мое назначение с использованием дополнительных функций / процедур, отличных от main (), недопустимо. Проблема в моем коде заключается в том, что этот второй цикл for вообще не выполняется, и я понятия не имею, почему.Программа должна принимать входные значения нормально, но я жестко закодировал значения в переменные, думая, что это будет иметь значение, но это не так.Если есть какой-то способ добиться этого, используя циклы if, for или while, это будет для меня оптимальным способом.
#include <stdio.h>
int main( void )
{
int number1 = 4;
int number2;
int factorial = 1;
int factorialPrev = 1;
printf("0! = 1\n");
for (int i = 0; i < number1; i++)
{
factorial = factorial * (number1 - i);
}
for (int i = number1 - 1; i <= 0; i--)
{
number2 = number1 - i;
factorialPrev = factorialPrev * number2;
printf("%d! = %d\n", number2, factorialPrev);
}
return 0;
}