这个c程序有什么问题?

#include<stdio.h>intfun(intn);voidmain(){inti;for(i=1;i<=5;i++)printf("%d!=%d\n",i,fu... #include<stdio.h>int fun(int n);void main(){ int i; for (i = 1; i <= 5; i++) printf("%d!=%d\n", i, fun(i));}/*-----------------定义fun函数-----------------*/int fun(int n){ register int i,s=0; for (i=1;i<=n;i++) s *=n; return s;}这是一本书籍上的一个程序,我运行后发现不是书本上的结果。书本上介绍运行的结果是:1!=12!=23!=64!=245!=120但实际我运行的结果如下图,所有的结果都是0 展开
 我来答
silenceandluo
2016-09-12 · TA获得超过1046个赞
知道小有建树答主
回答量:713
采纳率:0%
帮助的人:269万
展开全部
int fun(int n)
{
register int i,s=1; //把s的初值改成1
for (i=1;i<=n;i++)
s *=n;
return s;
}
修者世界
2016-09-12 · TA获得超过5850个赞
知道大有可为答主
回答量:5984
采纳率:61%
帮助的人:796万
展开全部
int fun(int n)
{
register int i,s=1; //问题出在s初始化为0 ,应该为1.
for (i=1;i<=n;i++)
s *=n;
return s;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
黑马程序员
2016-09-12 · 改变中国IT教育,我们正在行动
黑马程序员
黑马程序员为大学毕业后,有理想、有梦想,想从事IT行业的年轻人改变自己的命运。黑马程序员成就IT黑马
向TA提问
展开全部
书本上难免有错误,按照你写的程序,是全部为0,如果要得到书上的结果,需要s初始化为0;

int fun(int n)
{
register int i,s=1; //问题出在s初始化为0 ,应该为1.
for (i=1;i<=n;i++)
s *=n;
return s;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cc2840073
2016-09-12 · TA获得超过183个赞
知道答主
回答量:56
采纳率:0%
帮助的人:26万
展开全部
1:s初始化为1(但是这里肯定也得不到你要的结果,i的自加没有参于运算);
2:s*=i;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式