本题要求实现一个计算阶乘的简单函数,使得可以利用该函数,生成一张阶乘表,输出0!~n!的值。用C语言 double fact( int n );
时间: 2024-10-29 15:21:12 浏览: 41
C语言上机 | 求1! ~n! 的值
在C语言中,要实现一个计算阶乘的函数`fact()`,你可以使用递归的方式。阶乘是一个数的所有小于及等于它的正整数相乘的结果。以下是这个函数的基本实现:
```c
#include <stdio.h>
double fact(int n) {
// 阶乘的基础情况:0! = 1 和 1! = 1
if (n == 0 || n == 1) {
return 1;
} else {
// 递归计算 n! = n * (n - 1)!
return n * fact(n - 1);
}
}
int main() {
int n;
printf("请输入一个非负整数n: ");
scanf("%d", &n);
// 检查输入是否有效
if (n < 0) {
printf("错误:阶乘只对非负整数定义。\n");
return 1;
}
// 生成并打印阶乘表
for (int i = 0; i <= n; ++i) {
double result = fact(i);
printf(" %d! = %.2lf\n", i, result); // 输出结果保留两位小数
}
return 0;
}
```
在这个程序中,用户输入一个整数`n`,然后`main()`函数会调用`fact()`函数生成从0到`n`的阶乘,并打印出来。
阅读全文