第三题 编写函数fun,它的功能是:根据以下公式求P的值,结果由函数值带回。 m与n为两个正整数且要求m>n。p=m!/n!(m-n)!。例 如:m=12,n=8时,运行结果为495.000000。
时间: 2024-03-24 15:40:12 浏览: 89
好的,下面是实现该函数的代码:
```c
#include <stdio.h>
double fun(int m, int n) {
double p = 1.0;
for (int i = n + 1; i <= m; i++) {
p *= i;
}
for (int i = 1; i <= m - n; i++) {
p /= i;
}
return p;
}
int main() {
int m = 12;
int n = 8;
double p = fun(m, n);
printf("%f", p);
return 0;
}
```
在这个函数中,我们根据公式计算出 `p` 的值,并将结果返回。具体来说,我们首先将 `p` 的值初始化为 1,然后使用一个循环计算 `m` 的阶乘,即 `m * (m-1) * (m-2) * ... * (n+1)`;接着再使用一个循环计算 `(m-n)` 的阶乘,即 `(m-n) * (m-n-1) * (m-n-2) * ... * 1`,并将其除以 `p` 的值。最后将计算出的 `p` 的值返回。
在 `main` 函数中,我们调用 `fun` 函数并输出结果。
相关问题
编写函数fun,函数的功能是:根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。
我可以回答这个问题。函数fun的公式如下:s = 1 + 1/2 + 1/3 + ... + 1/n。函数fun的实现如下:
double fun(int n) {
double s = .;
for (int i = 1; i <= n; i++) {
s += 1. / i;
}
return s;
}
39、编写函数fun,它的功能是计算: s作为函数值返回。 在C语言中可调用log ( n )函数求ln (n)。log函数的引用说明是:double log(double x)。 例如,若m的值为: 20,fun函数值为: 6.506583。
根据题目描述,可以列出以下的代码实现:
```c
#include <stdio.h>
#include <math.h>
double fun(int m) {
double s = 0;
for (int i = 1; i <= m; i++) {
s += log(i);
}
return s;
}
int main() {
int m = 20;
double s = fun(m);
printf("m = %d, s = %lf\n", m, s);
return 0;
}
```
在函数 `fun` 中,我们利用循环计算从 1 到 m 的自然对数之和,并将其累加到变量 s 中。最后返回 s 的值作为函数值即可。
在主函数中,我们调用 fun 函数计算 m = 20 时的值,并将结果输出。
阅读全文