xiaoxx0909 2023-02-07 12:17 采纳率: 86.7%
浏览 55
已结题

编程,C语言,大学生

编程:输入n,计算n!

#include<stdio.h>
int main()
{ int i;long n,fact;
  printf("请输入n的值:");
  scanf("%ld",&n);
  if(n=0)
      fact=1;
  else if(n>0)
      i=2,fact=1;
  while(i<=n)
  { fact=fact*i;
    i=i+1;
  }
  printf("%ld!=%ld\n",n,fact);
return 0;
}

我觉得0!需要单独提出来,但为什么运行的时候计算为0,并且大于0的阶层无法计算
并且让我不太理解的是对于n为正整数阶层的计算,当n=1的计算是怎么出来的,是直接默认此时fact就为初始赋的值1吗?
如果是这样那我n=0的情况为啥不能这样进行编写
还有哦一般条件下变量的定义是double还是float型没太大的要求是吗?

  • 写回答

4条回答 默认 最新

  • SSS4362 2023-02-07 12:32
    关注
    #include<stdio.h>
    int main()
    { int i=1;long n,fact=1;
      printf("请输入n的值:");
      scanf("%ld",&n);
      if(n>0){
          i=2;
      }
      while(i<=n)
      { fact=fact*i;
        i=i+1;
      }
      printf("%ld!=%ld\n",n,fact);
    return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 2月15日
  • 已采纳回答 2月7日
  • 创建了问题 2月7日

悬赏问题

  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多
  • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
  • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000
  • ¥30 ppOCRLabel导出识别结果失败