c语言求助
第一个例子答案是对的,第二个例子输出的是-1.#IND00,不知道哪里有问题题目打不出來,只能放图片了https://i.loli.net/2020/10/25/wBoIhUZtViDMO47.png
我的代码
#include<stdio.h>
#include<math.h>
double fact(int a);
int main()
{
int i,n,k;
double b=1.0;
double x,t;
scanf("%lf %d",&x,&n);
double sum=x;
k=2*n+1;
for(i=3;k>=i;) //从第一项开始,计算并加上每一项
{
b=-b;
t=pow(x,i)/fact(i);
sum+=b*t;
i+=2;
}
printf("%.6lf",sum);
return 0;
}
double fact(int a) //阶乘函数
{
int i;
double s=1;
for(i=1;i<=a;i++){
s=s*i;}
return s;
} 发现一个错误,sum = x;我调整语句先后顺序是为了适应VC++6.0的需要,你可不予理会
#include<stdio.h>
#include<math.h>
double fact(int a);
int main()
{
int i,n,k;
double b = 1.0;
double x,t;
double sum = 0; // sum 作为累计变量,此处应该置0
scanf("%lf%d",&x,&n);
k = 2 * n + 1;
for(i = 3;i <= k;i++) //从第一项开始,计算并加上每一项
{
b = -b;
t = pow(x,i) / fact(i);
sum += b * t;
i += 2;
}
printf("%.6lf\n",sum);
return 0;
}
double fact(int a) //阶乘函数
{
int i;
double s = 1;
for(i = 1;i <= a;i++)
{
s = s * i;
}
return s;
}
页:
[1]