阶乘之差
请修改编辑器中的代码,完成以下功能:计算组合数 C(m, n),其中 C(m, n) 表示从 m 个元素中选取 n 个元素的组合数。程序需要从文件中读取 10 组整数 m 和 n,计算每组的组合数,并将结果输出到文件中。本题给定数据满足0≤n≤m≤20。 输入格式:输入文件的每行包含两个整数 m 和 n,用逗号分隔,表示需要计算的组合数的参数。 输出格式:输出文件的每行包含一个浮点数,表示对应的组合数。 输入示例: 12,8 5,2 ... 输出示例: 495.000000 10.000000 ... 请确保文件路径正确,并在计算组合数时使用阶乘公式。程序不需要键盘输入;主函数会在控制台打印一次测试结果“P=495.000000”,其余10组组合数写入out.txt文件。
#include <stdio.h>
double fun(int m, int n)
{
}
int main(void) /* 主函数 */
{ void NONO ();
printf("P=%f\n", fun (12,8));
NONO();
}
void NONO ()
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *fp, *wf ;
int i, m, n ;
double s;
fp = fopen("in.txt","r") ;
wf = fopen("out.txt","w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(fp, "%d,%d", &m, &n) ;
s = fun(m, n) ;
fprintf(wf, "%f\n", s) ;
}
fclose(fp) ;
fclose(wf) ;
}
控制台
调试终端
