你的代码没错,只是没有累加
#include "stdio.h"
int main()
{
int i;
int fact();
int s=0; //定义一个和的结果变量
for(i=1;i<=5;i++) //求1到5,不是0-4
{
printf("\40:%d!=%d\n",i,fact(i));
s += fact(i) ;//累加各阶乘
}
printf("\40:sum=%d\n" , s ); //输出结果
return 0;
}
int fact(j)
int j;
{
int sum;
if(j==0)
sum=1;
else
sum=j*fact(j-1);
return sum;
}
#include
int fact(int j)
{
int sum;
if(j==0)
sum=1;
else
sum=j*fact(j-1);
return sum;
}
void main()
{
int i,sum=0;
for(i=1;i<=3;i++)
sum+=fact(i);
printf("%d\n",sum);
}
输出是不是一直是1?后面fact()问题吧?
我觉得应该这样
int fact(j)
int j;
{
int sum;
if(j<>0)
sum=j*fact(j-1);
return sum;
}
另外,上面i应该是1开始
main前面加void,
int j;这句去掉。
if(j==0||j==1)
i取错了!!是1-5