【C语言】求组合数

2022-07-28  本文已影响0人  Hettie

本题要求编写程序,根据公式 C^m_n = n! \over m!(n-m)! 算出从n个不同元素中取出m个元素(mn)的组合数。

建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double

输入格式:

输入在一行中给出两个正整数mnmn),以空格分隔。

输出格式:

按照格式“result = 组合数计算结果”输出。题目保证结果在double类型范围内。

输入样例:

2 7

输出样例:

result = 21

代码:

#include <stdio.h>
double fact(int n)
{
    double factorial = 1;//局部变量声明
    for (; n >= 1; n--)
    {
        factorial *= n;
    }
    return factorial;//将计算结果返回
}
int main()
{
    int m, n;
    double result;//题目保证结果在double类型范围内
    scanf("%d %d", &m, &n);
    result = fact(n) / fact(m) / fact(n - m);
    printf("result = %.0lf", result);//去除小数点后的部分
    return 0;
}

提交截图:

image.png

解题思路:

本题主要考察了如何定义并调用函数。

定义函数

C 语言中的函数定义的一般形式如下:

return_type function_name( parameter list )
{
   body of the function
}

在 C 语言中,函数由一个函数头和一个函数主体组成。下面列出一个函数的所有组成部分:

调用函数

创建 C 函数时,会定义函数做什么,然后通过调用函数来完成已定义的任务。

当程序调用函数时,程序控制权会转移给被调用的函数。被调用的函数执行已定义的任务,当函数的返回语句被执行时,或到达函数的结束括号时,会把程序控制权交还给主程序。

调用函数时,传递所需参数,如果函数返回一个值,则可以存储返回值。

上一篇 下一篇

猜你喜欢

热点阅读