用c语言编写函数fun(),根据公式p=m!/(n!*(m-n)!)求p的值,结果由函数值返回。
时间: 2024-02-12 19:07:50 浏览: 177
好的,以下是用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,它的功能是:根据以下公式求p的值,结果又函数值带回。m,n为两个正整数且m大于n。p=m!/n!*(m-n)!
可以按照以下方式编写函数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;
}
for(i = m - n; i > 1; i--) {
p /= i;
}
return p;
}
```
这个函数的实现方式与上一个问题类似,也是通过循环计算阶乘的方式来求解公式中的p值。不同的是,在这个公式中,我们需要再次计算(m-n)!的阶乘,并将其作为除数再次除以变量p。
需要注意的是,同样由于计算阶乘可能会导致溢出,所以在实际实现中可能需要使用更为复杂的算法来处理这个问题。
c语言编写函数fun,按照y=1+1/2*2+1/33…+1/m*m公式求和
下面是按照给出公式编写的函数fun的C语言代码:
```c
float fun(int m) {
float sum = 0;
for(int i=1; i<=m; i++) {
sum += 1.0 / (i*i);
}
return sum + 1;
}
```
这个函数接受一个整数参数m,返回公式y=1+1/2*2+1/3*3…+1/m*m求和的结果。在函数内部,我们使用循环来计算这个公式的值,最后将结果返回。需要注意的是,在计算1/(i*i)时,我们需要将除数和被除数都转换为浮点数,否则整数除法会导致结果为0。另外,最后的常数1也需要加上去。
阅读全文