标题:帮忙看一段代码,求大神指导
取消只看楼主
猪自轻
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2012-12-11
结帖率:100%
已结贴  问题点数:20 回复次数:2 
帮忙看一段代码,求大神指导
程序的功能是计算组合数的函数combinNum(int m,int n),计算结果由函数返回。
计算组合数的公式是:  c(m,n)=m!/(n!*(m-n)!)。现在的问题是当输入的第一个数比第二个数大的时侯,显示的却是第一个数比第二个数小时会出现的情况;当输入的第一个数比第二个小时,显示的却是1.000000。请问哪里有问题呢?求解答~~
代码如下————
#include <stdio.h>
double combinNum(double m,double n);
int fun(int j);
main()
{
    double i,j;
    printf("Please enter two number:\n");
    scanf("%d%d",&i,&j);
    if(i<j)
    {
        printf("Your input is error.\n");
        //printf("The result is %lf.\n",combinNum(i,j));
    }
    else if(i>j)
    {
        printf("The result is %lf.\n",combinNum(i,j));
    }
    else
        printf("The result is 1.\n");
}
int fun(int j)
{
    if(j==0||j==1)
        return 1;
    else
        return fun(j-1)*j;
}
double combinNum(double m,double n)
{
    double k=1,a,b;
    if(m>n)
    {
        b=m-n;
        a=fun(b);
        k=fun(m)/fun(n)*a;
        return k;
    }
    else if(m<n)
    {
        printf("Yours input is error.\n");
    }
    else
        return 1;
}
搜索更多相关主题的帖子: number double include 
2013-01-19 16:13
猪自轻
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2012-12-11
得分:0 
回复 2楼 pauljames
不是符号的问题呢?
初学者就是不会,调试也不会
2013-01-19 18:21
猪自轻
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2012-12-11
得分:0 
回复 4楼 魍丶紫
嗯,确实是可以正确运行了,但是我也不明白为什么也这样改~
2013-01-20 12:15



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-397084-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.534659 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved