pesticide 发表于 2019-9-7 22:19:08

关于S1E8的课后作业

#include<stdio.h>


int main()
{
        float H, S;
       
       
       
       
        printf("请输入华氏度:");
        scanf("%f",&H);
       
        S = (H - 32) * 5 / 9 ;
       
        printf("转化为摄氏度是:%.2f",S) ;
       
        return 0;
       
}



这是一个可以正常编译的程序


#include<stdio.h>


int main()
{
        double H, S;
       
       
       
       
        printf("请输入华氏度:");
        scanf("%f",&H);
       
        S = (H - 32) * 5 / 9 ;
       
        printf("转化为摄氏度是:%.2f",S) ;
       
        return 0;
       
}



但是当H,S 定义为double时,程序随能正常运行,但其实编译出错是为什么呢?

superbe 发表于 2019-9-8 07:56:50

scanf("%f",&H); 输入double应该用%lf

pesticide 发表于 2019-9-8 10:33:07

superbe 发表于 2019-9-8 07:56
scanf("%f",&H); 输入double应该用%lf

可是在小甲鱼的表中
f对应
double;以小数形式输出单、双精度浮点数
为什么要在前面增加l 用long输出呢

superbe 发表于 2019-9-8 12:55:09

double输入用%lf,输出用%f,不一样

pesticide 发表于 2019-9-9 19:32:13

superbe 发表于 2019-9-8 12:55
double输入用%lf,输出用%f,不一样

哦哦,不好意思没有看到scanf的用法{:5_109:}
页: [1]
查看完整版本: 关于S1E8的课后作业