c语言程序1!+2!+3!+4!+5!

#include"stdio.h"main(){inti;intfact();for(i=0;i<5;i++)printf("\40:%d!=%d\n",i,fact(i... #include "stdio.h"
main()
{
int i;
int fact();
for(i=0;i<5;i++)
printf("\40:%d!=%d\n",i,fact(i));
}
int fact(j)
int j;
{
int sum;
if(j==0)
sum=1;
else
sum=j*fact(j-1);
return sum;
}
哪里错了
展开
 我来答
kaixingui2012
推荐于2018-05-06 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6134万
展开全部
你的代码没错,只是没有累加

#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;
}
追问
error C2660: 'fact' : function does not take 1 parameters
追答
你用的什么编译器?
能不能把全部错误信息粘出来?
你所提供的代码是老版本的C格式程序,现在应该这样写:
#include "stdio.h"
int main()
{
int i;
int fact( int ); //声明函数格式
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( int j) //函数实现
{
int sum;
if(j==0)
sum=1;
else
sum=j*fact(j-1);
return sum;
}
766195905wo
2013-05-31
知道答主
回答量:8
采纳率:0%
帮助的人:8.2万
展开全部
 #include<stdio.h>
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);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
神勇又温柔丶繁星n
2013-05-31
知道答主
回答量:31
采纳率:0%
帮助的人:8万
展开全部
输出是不是一直是1?后面fact()问题吧?
我觉得应该这样
int fact(j)

int j;

{
int sum;
if(j<>0)
sum=j*fact(j-1);
return sum;
}
另外,上面i应该是1开始
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cute杂货铺
2013-05-31 · 超过15用户采纳过TA的回答
知道答主
回答量:68
采纳率:33%
帮助的人:21万
展开全部
main前面加void,
int j;这句去掉。
if(j==0||j==1)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-05-31
展开全部
i取错了!!是1-5
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式