首页 > 用户发贴区 > 编程问题提问区 > 作业,请高手给看看
2007
10-02

我写的哪里错了


为什么总是输出的是1呢     题目是求e的x次方的泰勒展开式


#include<stdio.h>
 #include<math.h>
 main()
 {
  float x,n,ex,i,t,j;
  scanf(“x=%f,n=%f”,&x,&n);
  ex=1;
  j=1;
  for(i=1;i<=n;i++)
   {for(t=1;t<=i;t++)
     j*=t;
    ex+=pow(x,i)/j;
    }
  printf(“ex=%f\n”,ex);}


作业,请高手给看看》有 4 条评论

  1. 5iluo 说:

    pow()返回的是double弄,所以你定义时,最好定义成为double弄,不然要类型转换
    在输入double时,要用%lf

    而且scanf()用法也错了,,我改了一下,你参考一下

    void main()
    {

      double  x, n,ex,i,t,j;
     printf(“x = “);
     scanf(“%lf”, &x);
     printf(“n = “);
     scanf(“%lf”, &n);
     ex=1;
     j=1;
     for(i=1;i<=n;i++)
     {
      for(t=1;t<=i;t++)
       j*=t;
      ex+=pow(x,i)/j;
        }
      printf(“ex=%f\n”,ex);

    }

  2. 5iluo 说:

    double型,,哎,,用五笔的,打错了也不知道

  3. aaronkingod 说:

    谢谢,知道啦……呵呵

     

     

  4. 见习小C 说:

    回复的真好,谢谢啊

留下一个回复