这哪有问题呢,c语言初学者不会……

img

img


没有报错,但是运行出来输入啥都是零,先不说题目中那个累加的项数……

scanf没有加&符号
scanf("%lf",&x);

img


这是啥?
想-的话是-=
取负的话应该乘以-1吧

主要有以下几个问题:
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);