维德 发表于 2020-5-20 14:10:13

输入128 为什么double能用 long double就出不来


#include <stdio.h>
#include <math.h>

int main()
{
      int i;
      double result;

      printf("请输入一个整数:");
      scanf("%d", &i);

      result = pow(i, 5);

      printf("%d的五次方是:%.2f\n", i, result);

      return 0;
}



#include<stdio.h>
#include<math.h>
int main()
{
    int i;
    long double result;
    printf("请输入一个整数 ");
    scanf("%d",&i);
    result=pow(i,5);
    printf("%d的五次方是%.2f\n",i,result);
    return 0;
}





为什么double能用   long double就出不来

sunrise085 发表于 2020-5-20 14:23:59

long double 格式化输出要用%Lf
#include<stdio.h>
#include<math.h>
int main()
{
    int i;
    long double result;
    printf("请输入一个整数 ");
    scanf("%d",&i);
    result=pow(i,5);
    printf("%d的五次方是%.2Lf\n",i,result);
    return 0;
}

维德 发表于 2020-5-20 14:32:17

sunrise085 发表于 2020-5-20 14:23
long double 格式化输出要用%Lf

不行用的devc++

sunrise085 发表于 2020-5-20 14:40:36

维德 发表于 2020-5-20 14:32
不行用的devc++

没用过 devc++
是不是因为pow的返回值是double,而定义的 result 是 long double导致的?
把第九行加一个强制类型转换试试
#include<stdio.h>
#include<math.h>
int main()
{
    int i;
    long double result;
    printf("请输入一个整数 ");
    scanf("%d",&i);
    result=(long double)pow(i,5);
    printf("%d的五次方是%.2Lf\n",i,result);
    return 0;
}
页: [1]
查看完整版本: 输入128 为什么double能用 long double就出不来