C语言编写计算组合数的程序。要求输入数据要有容错功能。 **输入格式要求:"%d,%d" 提示信息:"Input m,k (m>=k>0):" **输出格式要求:"p = %.0f\n" 程序运行示例1如下: Input m,k (m>=k>0):3,2 p = 3 程序运行示例2如下: Input m,k (m>=k>0):2,3 Input m,k (m>=k>0):3,3 p = 1 Input m,k (m>=k>0):-2,-4 Input m,k (m>=k>0):4,2 p = 6 】
时间: 2023-12-24 22:05:53 浏览: 83
计算组合数,用C语言编程
5星 · 资源好评率100%
以下是一个实现了输入容错功能的计算组合数的C语言程序:
```c
#include <stdio.h>
long long combination(int m, int k) {
if (m < k || m < 0 || k < 0) {
return -1;
} else {
long long p = 1;
for (int i = 1; i <= k; i++) {
p *= m - k + i;
p /= i;
}
return p;
}
}
int main() {
int m, k;
long long p;
while (1) {
printf("Input m,k (m>=k>0):");
if (scanf("%d,%d", &m, &k) != 2) {
printf("Invalid input, please try again.\n");
while (getchar() != '\n');
continue;
}
p = combination(m, k);
if (p == -1) {
printf("Invalid input, please try again.\n");
continue;
} else {
printf("p = %lld\n", p);
break;
}
}
return 0;
}
```
程序运行示例如下:
```
Input m,k (m>=k>0):3,2
p = 3
```
```
Input m,k (m>=k>0):2,3
Invalid input, please try again.
Input m,k (m>=k>0):3,3
p = 1
```
```
Input m,k (m>=k>0):-2,-4
Invalid input, please try again.
Input m,k (m>=k>0):4,2
p = 6
```
阅读全文