刚入门的c语菜鸟 2022-08-04 16:44 采纳率: 33.3%
浏览 47
已结题

大一c语言简单编程程序

img

求解答18题,刚接触c语言望有会的能够花您宝贵的几分钟时间指导一下,谢谢

  • 写回答

1条回答 默认 最新

  • a5156520 2022-08-05 11:42
    关注

    因为fact()函数求阶乘函数是double类型,所以当n和m的数值过大时,结果不是很精确。
    参考链接:
    组合数计算器

    
    #include <stdio.h>
    
    //求阶乘 
    double fact(int n){
        
        double result=1;
        int i;
        
        for(i=1;i<=n;i++){
            result*=i;
        }
        
    //    printf("%d!=%lf\n",n,result);
        return result;
        
    } 
    
    
    int main(void){
        
        int m,n;
        printf("请输入两个正整数m和n(m<=n):");
        scanf("%d %d",&m,&n);
    //    printf("m=%d,n=%d\n",m,n);
        
        //打印组合数, 当n和m的数值过大时,可能结果不会很精确
        printf("组合数是:%.0lf",(fact(n)/(fact(m)*fact(n-m))));
        
        return 0; 
        
    }  
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 8月14日
  • 已采纳回答 8月6日
  • 修改了问题 8月5日
  • 创建了问题 8月4日

悬赏问题

  • ¥15 vhdl+MODELSIM
  • ¥20 simulink中怎么使用solve函数?
  • ¥30 dspbuilder中使用signalcompiler时报错Error during compilation: Fitter failed,求解决办法
  • ¥15 gwas 分析-数据质控之过滤稀有突变中出现的问题
  • ¥15 没有注册类 (异常来自 HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
  • ¥15 知识蒸馏实战博客问题
  • ¥15 用PLC设计纸袋糊底机送料系统
  • ¥15 simulink仿真中dtc控制永磁同步电机如何控制开关频率
  • ¥15 用C语言输入方程怎么
  • ¥15 网站显示不安全连接问题