编写函数fun(),它的功能是;根据以下公式求p的值,结果由函数值带回。m与n为两个正数且要求m>n。P=m!/n!(m-n)!),例如:m=12,n=8时,运行结果为495.000000。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:include <conio.h>include <stdio.h>float fun (int m, int n){}main(){clrscr() ;printf ("p=%f\n", f

题目

编写函数fun(),它的功能是;根据以下公式求p的值,结果由函数值带回。m与n为两个正数且要求m>n。

P=m!/n!(m-n)!),例如:m=12,n=8时,运行结果为495.000000。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

include <conio.h>

include <stdio.h>

float fun (int m, int n)

{

}

main()

{

clrscr() ;

printf ("p=%f\n", fun (12,8) ) ;

}


相似考题
参考答案和解析
正确答案:float fun (int m int n) { int i; double p=1.0; for(i=1;i=m;i++) p=p*i; /*求m!*/ for(i=1;i=n;i++) p=p/i; /*求m!/n!*/ for(i=1;i=m-n;i++) p=p/i; /*求m!/(n!(m-n)!)*/ return p; }
float fun (int m, int n) { int i; double p=1.0; for(i=1;i=m;i++) p=p*i; /*求m!*/ for(i=1;i=n;i++) p=p/i; /*求m!/n!*/ for(i=1;i=m-n;i++) p=p/i; /*求m!/(n!(m-n)!)*/ return p; } 解析:本题中,欲求P的值,需要先求m,n,m-n的阶乘值,可用循环语句实现。注意阶乘值应当是double类型,若定义x,y,z为整型变量,则p=x/(y*z)中的除法为整数除法。
更多“编写函数fun(),它的功能是;根据以下公式求p的值,结果由函数值带回。m与n为两个正数且要求m>n。P=m! ”相关问题
  • 第1题:

    请编写函数fun(),它的功能是计算:s=(1-In(1)-In(2)-In(3)-…-1n(m))2

    s作为函数值返回。

    在C语言中可调用log(n)函数求In(n)。log函数的引用说明是double log(double x)。

    例如,若m的值为15,则fun()函数值为723.570801。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

    试题程序:

    include <conio.h>

    include <stdio.h>

    include <math.h>

    double fun(int m)

    {

    }

    main()

    {

    clrscr();

    printf("%f\n",fun(15));

    }


    正确答案:double fun(int m) {   int i; double s=1.0; for(i=1;i=m;i++) s=s-log(i); /*计算s=l-In(1)-In(2)-In(3)-…-In(m)*/ return (s*s); /*对s求平方并返回*/ }
    double fun(int m) {   int i; double s=1.0; for(i=1;i=m;i++) s=s-log(i); /*计算s=l-In(1)-In(2)-In(3)-…-In(m)*/ return (s*s); /*对s求平方并返回*/ } 解析:首先,题目要求计算1依次减去1到M的对数,可用从1到M的循环,每次循环都减一个数的对数。该题需要注意,log()函数的形式参数应浩如烟海double型变量,用于循环的基数变量为整数,需要进行强制转换。最后在返回的时求平方。

  • 第2题:

    8、编写程序实现以下功能:计算C(1,n)+C(2,n)+...+C(m,n)的值。其中,m和n是两个正整数,且m小于或等于n,C(i,n)=n!/i!/(n-i)!(这里的!表示阶乘,i在1~m上依次取值)。要求计算C(i,n)的功能用函数实现。


    ABCD

  • 第3题:

    原题目有误,请忽略原题目、完成本题目。编写程序实现以下功能:计算C(1,n)+C(2,n)+...+C(m,n)的值。其中,m和n是两个正整数,且m小于或等于n,C(i,n)=n!/i!/(n-i)!(这里的!表示阶乘,i在1~m上依次取值)。要求计算C(i,n)的功能用函数实现。


    A

  • 第4题:

    编写函数fun(),其功能是计算:

    s作为函数值返回。

    在C语言中可调用log(n)函数求1n(n)。log函数的引

    用说明为:double log(double x)。

    例如,若m的值为20,则fun()函数值为6.506583。

    注意:部分源程序给出如下。

    请勿改动main()函数和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。

    试题程序:


    正确答案:


    【解析】题目要求写出程序实现数学表达式的功能,需要用for循环计算累加的结果,调用sqrt函数实现求平方根。循环变量的范围是1~m,每次循环都进行一次累加求和。需要特别注意的是,log函数的形式参数为double型变量,用于循环的计数变量为整数,所以必须强制转换。最后返回所求出的平方根。

  • 第5题:

    【填空题】编写求n!____,然后编写函数原型为double cmk____,调用阶乘函数计算Ckm,计算公式为Ckm=m!/____!),在主函数中输入m、k,调用这两个函数计算C83的结果。


    使用递归算法编写计算 n! 的函数