|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
第一个例子答案是对的,第二个例子输出的是-1.#IND00,不知道哪里有问题
题目打不出來,只能放图片了
我的代码
#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;
- }
复制代码
|
|