C语言。编写求n!的函数f(int n),在主函数中输入两个整数m、n,然后调用函数求:C=m!/n!*(m-n)!。
时间: 2024-12-26 07:29:18 浏览: 6
C语言是一种广泛使用的通用高级编程语言,它的设计简洁、高效,适用于系统级编程和嵌入式开发。在C语言中,你可以通过递归或循环结构来实现阶乘计算。首先,我们需要编写一个名为`f`的函数,用于计算给定整数的阶乘。
```c
#include <stdio.h>
// 定义求阶乘的函数,如果n小于0,返回0;n=0时,阶乘为1
int factorial(int n) {
if (n < 0) {
return 0;
} else if (n == 0 || n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
// 主函数main
int main() {
int m, n;
// 输入两个整数
printf("请输入两个整数m和n:");
scanf("%d %d", &m, &n);
// 检查输入是否合法,防止除以零的情况
if (n != 0) {
double result = (double)factorial(m) / factorial(n) * factorial(m - n); // 注意这里需要将结果转换为double避免整数溢出
printf("C = %.0lf\n", result);
} else {
printf("n不能为0。\n");
}
return 0;
}
```
在这个程序中,我们先计算了`m!`、`n!`和`(m - n)!`的值,然后相除相乘得到`C`。注意,由于计算阶乘的结果可能会很大,直接对整数做除法可能导致精度丢失,因此这里我们将结果转换成了`double`类型存储。
阅读全文