小小甲鱼哈哈 发表于 2015-8-22 14:30:19

新手。。求指教。。

刚编的程序。。看了几遍也不知道错在哪里。。
问题是求2的阶乘与3的阶乘的和
#include <stdio.h>
long square(int a);
long factorial(int b);
int main()
{
   
    long s;
    s=factorial(square(2))+factorial(square(3));
    printf(" %ld",s);
}

int square(int a)
{
    a*=a;
    return a;

}
int factorial(int b)
{
    int c=1;
    while(b--)
    {
      c*=b;
   
    }
return c;
}

哥斯拉不说话 发表于 2015-8-22 18:12:02

本帖最后由 哥斯拉不说话 于 2015-8-22 18:13 编辑

1. 为什么要写一个 square() 函数?
2. while(b--) 一句,当 b 为 1 时,b-- 为 1,然后 b-1,b 为 0, c *= b; 肯定为 0
#include <stdio.h>

long factorial(int b);

int main()
{
    long s;
       
    s = factorial(2) + factorial(3);
    printf("%ld\n", s);
       
    return 0;
}

long factorial(int b)
{
    int c=1;
       
    for(; b>1; b--)
      c *= b;
       
    return c;
}
页: [1]
查看完整版本: 新手。。求指教。。