Ney0704
Ney0704
采纳率100%
2020-12-29 14:02

初学者,可以帮忙看看为什么下面的代码运行结果是0吗?

已采纳

一个求组合数的

 

# include <stdio.h>

int J(int a)
{
    int i;
    if(a==0)
        return 1;
    for(i = 1 ; i<=a ; i++)
        a = a * i;
    return a;
}

int C(int a , int b)
{
    if(b==0)
        return 1;
    return J(a) / J(b) / J(a-b);
}

int main()
{
    int a=0 , b=0 ; 
    scanf("%d%d" , &a , &b);
    if(b > a || b < 0)
        printf("Wrong");
    else 
        printf("%d" , C(a,b));
    return 0 ;
}
 

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • qq_25376897 qq_25376897 4月前
    # include <stdio.h>
    
    int J(int a)
    {
        int i,n=1;
        if(a==0)
            return 1;
        for(i = 1 ; i<=a ; i++)
            n = n * i;
        return n;
    }
    
    int C(int a , int b)
    {
        if(b==0)
            return 1;
        return J(a) / J(b) / J(a-b);
    }
    
    int main()
    {
        int a=0 , b=0 ; 
        scanf("%d%d" , &a , &b);
        if(b > a || b < 0)
            printf("Wrong");
        else 
            printf("%d" , C(a,b));
        return 0 ;
    }
    点赞 评论 复制链接分享
  • weixin_38554391 JysinWee 4月前

    为什么结果不是这样呢?你认为结果应该是什么?哪里的执行不符合你的预期?

    点赞 评论 复制链接分享

相关推荐