m0_73878384 2022-10-07 12:16 采纳率: 80%
浏览 42
已结题

double计算数值时总为1

为什么 当float换为double时 计算结果总为1?

#include <stdio.h>
void main()
{
    int n,i;
float  x,exp = 1.0,s = 1.0,t = 1.0 ,m =1.0;
    printf("请输入 x,n :\n");
    scanf("%f %d",&x,&n);
    for(i = 1; i<=n;i++)
    {
        
        m = m*i;
        s = s*x;
        t = s/m;
        exp = exp + t ;
    }
    printf("%f",exp);
    return ;
}

```c
#include <stdio.h>
void main()
{
    int n,i;
double  x,exp = 1.0,s = 1.0,t = 1.0 ,m =1.0;
    printf("请输入 x,n :\n");
    scanf("%f %d",&x,&n);
    for(i = 1; i<=n;i++)
    {
        
        m = m*i;
        s = s*x;
        t = s/m;
        exp = exp + t ;
    }
    printf("%lf",exp);
    return ;
}

```

  • 写回答

3条回答 默认 最新

  • 四海一叶秋 2022-10-07 12:48
    关注

    27行开头改成scanf("%lf

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 10月15日
  • 已采纳回答 10月7日
  • 创建了问题 10月7日