c语言编写函数fun,它的功能是:根据以下公式求p的值,结果又函数值带回。m,n为两个正整数且m大于n。p=m!/n!(m-n)!
时间: 2024-03-25 17:38:28 浏览: 77
可以按照以下方式编写函数fun:
```c
int fun(int m, int n) {
int i, p = 1;
for(i = m; i > m - n; i--) {
p *= i;
}
for(i = n; i > 1; i--) {
p /= i;
}
return p;
}
```
这个函数的实现方式是通过循环计算阶乘的方式来求解公式中的p值。首先,我们通过循环计算m * (m-1) * ... * (m-n+1)的值,将结果存储在变量p中。然后,我们通过循环计算n * (n-1) * ... * 2的值,并将其作为除数,除以变量p,从而得到最终的结果。
需要注意的是,由于计算阶乘可能会导致溢出,所以在实际实现中可能需要使用更为复杂的算法来处理这个问题。
相关问题
用c语言编写函数fun(),根据公式p=m!/(n!*(m-n)!)求p的值,结果由函数值返回。
好的,以下是用C语言编写的函数fun(),可根据公式p=m!/(n!*(m-n)!)求p的值,并将结果作为函数值返回。
```c
#include <stdio.h>
int factorial(int num) {
if (num == 0) {
return 1;
} else {
return num * factorial(num - 1);
}
}
int fun(int m, int n) {
int p = factorial(m) / (factorial(n) * factorial(m - n));
return p;
}
int main() {
int m, n;
printf("请输入m和n的值:\n");
scanf("%d %d", &m, &n);
int result = fun(m, n);
printf("结果为:%d", result);
return 0;
}
```
在这个程序中,我们定义了一个名为factorial()的函数来计算一个数的阶乘。然后,我们定义了一个名为fun()的函数来计算公式p=m!/(n!*(m-n)!)的值,并将结果作为函数值返回。
在主函数中,我们从用户那里获取输入值m和n,并调用fun()函数来计算结果。最后,我们将结果打印在屏幕上。
希望这个程序能够回答你的问题!
编写c语言函数fun,函数的功能是:根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。 S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n) 例如,若n的值为11时,函数的值为1.833333。
好的,您的问题是编写一个C语言函数fun,根据公式计算s,n通过形参传入,计算结果作为函数值返回。下面是函数实现的代码:
```
double fun(int n) {
double s = 0.0, denominator = 1.0;
for(int i = 1; i <= n; ++i) {
denominator *= i;
s += 1.0 / denominator;
}
return s;
}
```
函数内部使用了一个循环,依次计算公式中的每一项,并将其累加到变量s中。变量denominator用于存储分母的值,初始化为1,在每次循环中将其乘以i,获得当前项的分母。最后将s作为函数值返回即可。例如,若n为11,函数返回的值为1.833333。
阅读全文