c语言阶乘代码
以下是一个用C语言编写的计算阶乘的代码:
#include <stdio.h>
int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int num;
printf("请输入一个非负整数:");
scanf("%d", &num);
if (num < 0) {
printf("输入错误!请输入一个非负整数。\n");
return 0;
}
int result = factorial(num);
printf("%d的阶乘是:%d\n", num, result);
return 0;
}
这段代码中,factorial
函数用递归的方式计算阶乘。在main
函数中,首先要求用户输入一个非负整数,然后调用factorial
函数计算阶乘,并将结果打印出来。如果用户输入的是负数,则会提示输入错误。
当用户输入一个非负整数时,程序会调用factorial
函数来计算阶乘。factorial
函数使用递归的方式来计算阶乘,即将问题分解为更小的子问题。当输入的数为0时,递归终止,返回1。否则,递归调用factorial
函数来计算n-1
的阶乘,并将结果与n
相乘,得到n
的阶乘。
在main
函数中,首先要求用户输入一个非负整数,并将其存储在变量num
中。然后,通过调用factorial
函数来计算num
的阶乘,并将结果存储在变量result
中。最后,使用printf
函数将num
和result
打印出来。
如果用户输入的是负数,则会输出错误提示信息,并结束程序的执行。
这段代码可以计算较小的阶乘,但对于较大的阶乘可能会导致栈溢出或计算时间过长。在实际应用中,可以考虑使用循环或其他优化方法来计算阶乘。