求c语言指导。

#include<stdio.h>
double fact(int n);
int main(void)
{
int i;
double sum=0.0;
for(i=1;1<10;i++)
sum=sum+fact(i);
printf("1!+2!+...+10!=%f\n",sum);
return 0;
}
double fact(int n)
{
int i;
double result=1;
for(i=1;i<=n;i++)
fact(n)==fact(n)*i;
return result;
}
执行后,提示:"="左操作数必须为左值。
是什么意思??

同学,阶乘还有小数?为什么要定义double类型?int不是很好吗?

fact(n)==fact(n)*i;这是什么?递归调用?变量?

如果函数没有返回值,一律定义void类型

你自己慢慢看吧

此代码已改:

#include<stdio.h>
int fact(int n);
void main(void)
{
int i;
int sum=0;
for(i=1;i<=10;i++)
{
sum=sum+fact(i);
}
printf("1!+2!+...+10!=%d\n",sum);
return 0;
}
int fact(int n)
{
int i;
int result=1;
for(i=1;i<=n;i++)
{
result=result*i;
}
return result;
}

如果对你有所帮助,请记得采纳最佳答案,谢谢!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-11-23
fact(n)==fact(n)*i; 写错了吧?
第2个回答  2010-11-28
这么多人给我发,为什么就没有合适的呢,我要的是该书中关于VC++6.0使用环境那部分的讲解
相似回答