萝卜头溜溜溜 发表于 2019-10-19 20:56:41

C语言 新手求助~

经典的阶乘求和,从n=5开始结果就不对了,自己看不出哪错了,求大佬指点啊{:5_105:} ~~以下为代码:
#include<stdio.h>
int main()
{
        int a,c,n;
        long int b,d;
        b=1,d=0;
        printf("请输入n的值:\n");
        scanf("%d",&n);
        for(a=1;a<=n;a+=2)
                {
                        for(c=1;c<=a;c++)
                        {
                                b=b*c;        
                        }
                        d=d+b;       
                }
        printf("此阶乘的值为:%ld",d);
}

落花于梦 发表于 2019-10-19 21:09:21

阶乘不是n*(n-1)*(n-2)..*1?

superbe 发表于 2019-10-19 21:27:31

    for(a=1;a<=n;a+=2)
    {
      b = 1;    //添加一行
      for(c=1;c<=a;c++)
      {
            b=b*c;      
      }
      d=d+b;      
    }

bin554385863 发表于 2019-10-20 08:52:48

你这是阶乘→_→?

bin554385863 发表于 2019-10-20 09:01:16

本帖最后由 bin554385863 于 2019-10-20 09:06 编辑

int n = 0, m = 0;
std::cin>>n;
if(n < 0)
{
    reurn -1;
}
if(n == 0)
{
    return 1;
}
if(n > 0)
{
    for(int i = 1,j = 1; i ≤ n; i++)
    {
      j *= i;
      m = j;
    }
return m;
}

萝卜头溜溜溜 发表于 2019-10-21 13:01:47

superbe 发表于 2019-10-19 21:27
for(a=1;a

原来如此!谢啦{:5_109:}
页: [1]
查看完整版本: C语言 新手求助~