scanf没有加&符号
scanf("%lf",&x);
主要有以下几个问题:
1、通过scanf获取数据有问题,后面一部分应该为&x,固定写法。
2、迭代因子的分母t,按照要求,阶乘从1开始乘,一直到n,就可以。因为是循环,t没有重新赋值,导致多次循环以后,是多个阶乘的乘积。
3、没有按照要求对循环次数进行计数累加。
参考代码:基本使用原始代码,知识修改错误地方
#include <stdio.h>
#include <math.h>
int main(int argc, const char * argv[]) {
double x, term, sum=0.0;
scanf("%lf", &x); // 获取变量,使用&符号
int i, t=1, n=1, sign=-1;
int count = 0;
do{
term = pow(x, n) / t;
sign = -sign;
sum = sum + term * sign;
n = n + 2;
t=1; // 重置t,保证至为阶乘
for(i=1; i<=n; i++){
t = t * i;
}
printf("%d\n", n);
printf("%lf\n", term);
count++; // 累加次数
}while (fabs(term) >= 1e-5);
printf("%f\n", sum);
printf("%d", count);
return 0;
}
完整回答内容,请参考:https://www.miebug.net/ask/question/4.html
scanf("%lf",&x);