用c语言编写程序:计算C(n,m)=m!/n!(m-n)!的值
时间: 2024-04-02 09:31:31 浏览: 20
好的,以下是计算C(n,m)的C语言程序:
```c
#include <stdio.h>
int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n-1);
}
}
int combination(int n, int m) {
return factorial(m) / (factorial(n) * factorial(m-n));
}
int main() {
int n = 3;
int m = 7;
int result = combination(n, m);
printf("C(%d, %d) = %d\n", n, m, result);
return 0;
}
```
在这个程序中,我们定义了一个用于计算阶乘的函数factorial,并且根据组合公式计算C(n,m)的值。最后我们将结果打印出来,其中n和m的值可以根据需要进行修改。
相关问题
用c语言编写以下程序:已知sinx的近似计算公式如下: sin x = x - x3/3! + x5/5! -
使用C语言编写如下程序:
```c
#include <stdio.h>
#include <math.h>
double factorial(int n) {
double result = 1.0;
for (int i = 2; i <= n; i++) {
result *= i;
}
return result;
}
double sinApproximation(double x) {
double sinX = x - (pow(x, 3) / factorial(3)) + (pow(x, 5) / factorial(5)); // 计算sin x的近似值
return sinX;
}
int main() {
double angle;
printf("请输入角度值(度):");
scanf("%lf", &angle);
// 将角度转换为弧度
double radians = angle * M_PI / 180;
// 调用sinApproximation函数计算近似值
double result = sinApproximation(radians);
printf("sin(%lf)的近似值为:%lf\n", angle, result);
return 0;
}
```
该程序中定义了一个`factorial`函数,用于计算阶乘的值。然后使用`sinApproximation`函数来计算sin x的近似值,根据给定的近似公式进行计算。在`main`函数中,首先通过用户输入获取角度值,然后将角度值转换为弧度值。最后调用`sinApproximation`函数计算近似值,并将结果输出到控制台。
用c语言编写一个程序,任意输入两个数m,n的值,计算m!/(m-n)!n!
好的,以下是用C语言编写的程序,可以实现您的要求:
```c
#include <stdio.h>
int main() {
int m, n;
unsigned long long result = 1; // 防止计算结果溢出
// 输入m和n的值
printf("请输入两个整数m和n(m >= n):");
scanf("%d%d", &m, &n);
// 计算m!/(m-n)!n!
for (int i = m; i > m - n; i--) {
result *= i;
}
for (int i = n; i > 1; i--) {
result /= i;
}
// 输出结果
printf("%d!/(%d-%d)!%d! = %llu\n", m, m, n, n, result);
return 0;
}
```
程序的运行结果如下所示:
```
请输入两个整数m和n(m >= n):6 3
6!/(6-3)!3! = 120
```
其中,`%llu`是用来输出`unsigned long long`类型的数据的格式控制符。由于计算结果可能很大,所以我们使用了`unsigned long long`类型来存储结果,以避免溢出。