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

2024-11-16 23:43:39
推荐回答(3个)
回答(1):

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

#include
#include
#include
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;
}

回答(2):

e^x=1+x+x^2/2!+x^3/3!+⋯+x^n/n! 式子中第一个1没有算进去,a初始化为1就可以了。

回答(3):

scanf("%f %d",&x,&n);多了空格改为:scanf("%f%d",&x,&n);