Ghua975 2022-12-25 20:24 采纳率: 83.3%
浏览 22
已结题

x的n次方的表示出错

我尝试用泰勒公式(1 + x + x^2/2 + x^3/6 + ... + x^n/n!)来算exp的近似值和准确值进行比较,k表示循环的次数,a和sum用来表示 n的阶乘,pow(x,n)为了用来表示x的n次方,但是为什么运行出来问题很大啊,问题应该就在数据类型的选择或者循环内,麻烦各位帮忙看看哪里的问题啊

int main()
{
    int k,a;
    float i,j,sum=1;
    double x,n;
    printf("Enter the value of x:");
    scanf("%f",&x);
    j=1;
    n=0;
    i=1;
    printf("Enter the number of the loops:");
    scanf("%d",&k);
    while(n<k) /*Exit loop condition*/
    {
      n++;
      for(a=1;a<=n;a++)
      {
          sum=sum*i;
      }
      i=pow(x,n)/sum;
      j+=i;
    }
    printf("exp(x)=%f\n",exp(x));
    printf("from the formula that e to the x power j is:%f\n",j);

    return 0;
}

我尝试用泰勒公式(1 + x + x^2/2 + x^3/6 + ... + x^n/n!)来算exp的近似值和准确值进行比较,k表示循环的次数,a和sum用来表示 n的阶乘,pow(x,n)为了用来表示x的n次方,但是为什么运行出来问题很大啊,问题应该就在数据类型的选择或者循环内,麻烦各位帮忙看看哪里的问题啊

  • 写回答

1条回答 默认 最新

  • 流比 2022-12-25 20:37
    关注
    
    #include <stdio.h>
    #include <math.h>
    
    int main() {
        int k, a;
        float x;
        float current_term;  // 当前项的值
        float sum = 1;  // n 的阶乘
        float i = 1;  // x 的 n 次方
        float j = 0;  // 公式的值
        float n = 0;  // 循环次数
    
        // 读入 x 和循环次数 k
        printf("Enter the value of x:");
        scanf("%f", &x);
        printf("Enter the number of the loops:");
        scanf("%d", &k);
    
        // 计算公式中的每一项
        while (n < k) {
            // 计算当前项的值
            current_term = i / sum;
    
            // 更新 j
            j += current_term;
    
            // 更新 i 和 sum
            i *= x;
            sum *= (++n);
        }
    
        // 输出 exp(x) 和用公式计算的结果
        printf("exp(x) = %f\n", exp(x));
        printf("from the formula that e to the x power j is: %f\n", j);
    
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月2日
  • 已采纳回答 12月25日
  • 修改了问题 12月25日
  • 修改了问题 12月25日
  • 展开全部

悬赏问题

  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类