企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# C 程序:查找数字阶乘 > 原文: [https://www.programiz.com/c-programming/examples/factorial](https://www.programiz.com/c-programming/examples/factorial) #### 在此示例中,您将学习计算用户输入的数字的阶乘。 要理解此示例,您应该了解以下 [C 编程](/c-programming "C tutorial")主题: * [C 数据类型](/c-programming/c-data-types) * [C 编程运算符](/c-programming/c-operators) * [C `if...else`语句](/c-programming/c-if-else-statement) * [C `for`循环](/c-programming/c-for-loop) * * * 正数`n`的阶乘由下式给出: ```c factorial of n (n!) = 1 * 2 * 3 * 4....n ``` 负数的阶乘不存在。 并且,阶乘 0 为 1。 * * * ## 数字的阶乘 ```c #include <stdio.h> int main() { int n, i; unsigned long long fact = 1; printf("Enter an integer: "); scanf("%d", &n); // shows error if the user enters a negative integer if (n < 0) printf("Error! Factorial of a negative number doesn't exist."); else { for (i = 1; i <= n; ++i) { fact *= i; } printf("Factorial of %d = %llu", n, fact); } return 0; } ``` **输出** ```c Enter an integer: 10 Factorial of 10 = 3628800 ``` * * * 该程序从用户处获取一个正整数,并使用`for`循环计算阶乘。 由于数字的阶乘可能很大,因此阶乘变量的类型声明为`unsigned long long`。 如果用户输入一个负数,程序将显示一个自定义错误消息。 您还可以使用递归查找数字的[阶乘](https://www.programiz.com/c-programming/examples/factorial-recursion)。