发布网友 发布时间:2024-10-23 23:36
共3个回答
热心网友 时间:2分钟前
阶乘函数,不能直接修改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;
}
热心网友 时间:8分钟前
scanf("%f %d",&x,&n);多了空格改为:scanf("%f%d",&x,&n);
热心网友 时间:1分钟前
e^x=1+x+x^2/2!+x^3/3!+⋯+x^n/n! 式子中第一个1没有算进去,a初始化为1就可以了。