这个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
展开
展开全部
int fun(int n)
{
register int i,s=1; //问题出在s初始化为0 ,应该为1.
for (i=1;i<=n;i++)
s *=n;
return s;
}
{
register int i,s=1; //问题出在s初始化为0 ,应该为1.
for (i=1;i<=n;i++)
s *=n;
return s;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
书本上难免有错误,按照你写的程序,是全部为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;
}
int fun(int n)
{
register int i,s=1; //问题出在s初始化为0 ,应该为1.
for (i=1;i<=n;i++)
s *=n;
return s;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1:s初始化为1(但是这里肯定也得不到你要的结果,i的自加没有参于运算);
2:s*=i;
2:s*=i;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询