C语言,编程出,计算e的x次方。其中e的x次方=1+x+x^2/(2!)...+x^n/(n!)。 帮我看看哪里错了。

来源:百度知道 编辑:UC知道 时间:2024/06/24 16:26:37
#include<stdio.h>
#include<math.h>
double exp1(int x,int n);
void main()
{
int x,n;
double a;
printf("Input two number:\n");
scanf("%d%d",&x,&n);
a=exp1(x,n);
printf("e^x=%lf\n",a);
}
double exp1(int x,int n)
{
int a,b,c;
double sum=0,sum1=1;
for(b=1;b<=n;b++)
sum1*=b;
sum+=(pow(x,b)/sum1);
return(sum);
}

在double exp1()函数中for应该这样写
for (b=1; b<=n; b++)
{
sun1 *= b;
sum += (pow(x, b)/sum1);
}
你少了个括号,这回再试试~~
其实最好把sum1设置成int型,因为它仅仅是用来算阶乘的
顺便提醒你,如果你是新手,学习编程一定要养成好的习惯,建议你看看《C/C++规范编程》很不错的书~~
祝学习愉快

先告诉我你觉得出了什么问题,是不是比如说 输入1 40000,而它却是1.7几,你觉得有问题?

for (b=1; b<=n; b++)
{
sun1 *= b;
sum += (pow(x, b)/sum1);
}
这个我也试过,可是还是有上面的问题

是不是int型的除法(pow(x,b)/sum1);这里可能出问题
int/int ?