C语言问题求助:编写一个程序,输入x和n后计算公式的近似值。 e^x=1+x+x^2/2!+x^3/3!+⋯+x^n/n!

帮我检查一下哪个地方出错了:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main()
{
int fact(int m);
int n,i;
float x,a=0;
printf("请分别输入X和n的值:");
scanf("%f %d",&x,&n);
for(i=1;i<=n;i++)
a=a+(pow(x,i)/fact(i));
printf("近似值为:%5.2f",a);
system("pause");
return 0;
}
int fact(int m)
{
int t=1;
for(;m>=1;m--)
t=t*m;
return(t);
}

阶乘函数,不能直接修改m的值。不过此处无影响。
主要是没加1.

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int fact(int m)
{
int t=1;
int i;
//if( m == 0 )
// return 1;
for( ; m>=1; m--)//不能直接修改m的值,但此处无影响
t=t*m;
return(t);
}
int main()
{
int n,i;
double x,a=0;
double temp;
printf("请分别输入X和n的值:");
scanf("%lf %d",&x,&n);// f->lf

a = 1;//从1开始加的
for(i=1;i<=n;i++)
{
temp = pow(x,i);
temp = (double)pow(x,i)/(double)fact(i);
a = a + ((double)pow(x,i)/(double)fact(i));
}
/*
a = 0;
for(i=0;i<=n;i++)
{
a=a+(pow(x,i)/fact(i));
printf("a=%d\n", a);
}
*/
printf("近似值为:%5.2lf\n",a );
system("pause");
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-17
e^x=1+x+x^2/2!+x^3/3!+⋯+x^n/n! 式子中第一个1没有算进去,a初始化为1就可以了。来自:求助得到的回答
第1个回答  2012-12-17
scanf("%f %d",&x,&n);多了空格改为:scanf("%f%d",&x,&n);
相似回答