C语言任务,快速采纳系列(2)

来源:百度知道 编辑:UC知道 时间:2024/05/31 16:17:01
计算级数X - X3/(3*1!) + X5/(5*2!) - X7/(7*3!) + … + X(2n+1)/((2n+1)*n!)的和,要求当|X(2n+1)/n!|小于10-6时停止计算。

(参考数据: 当X=0.5时,级数和为0.46;当X=1时,级数和为0.75。)
有8个错误和5个warning

你搞个while(1)
{
你自己写你的啰嗦的运算吧?
if(X(2n+1)/n!|小于10-6) //这个条件很搞笑
{
break;
}
}

double factor(int n)
{/* 求double范围内的 某数阶乘*/
double rel = n;
double num = n *1.0f;
/*cout.precision(35);*/

for(int i=1;i<n;i++)
{
rel *=(num-1);
num = num - 1.0;
}
/*cout<<rel<<endl;*/
return rel;
}

double myPow(double x,int y)
{
double sum = 1.0f;
for (int i = 1;i <= y;i++)
{
sum *= x;
}
return sum;
}
int main()
{
double sum = 0.0;
int n=0;
int s = 1;
double x;
scanf("%f",&x);
int m = 2*n+1;
while((fabs(myPow(x,m)/(factor(n)))) <= 1.0e-6)
{
sum += 1.0f*(s * myPow(x,m)) / (m * factor(n));
/*此处乘以1.0f是使计算的结果为double型*/
s *=-1;
n++;
m = 2 *n +1;
}
printf(&qu