注意双精度类型的格式转换符的使用

编写一个程序,该程序要求用户输入一个华氏温度。程序以double类型读入温度值,并将它作为一个参数传递给用户提供的函数Temperatures()。该函数将计算相应的摄氏温度和绝对温度,并以小数点右边有两位数字的精度显示着三种温度。它该用每个值所代表的温度刻度来标识这3个值。下面是将华氏温度转换成摄氏温度的方程:

Celsius=1.8*Fahrenheit+32.0

通常用在科学上的绝对温宿的刻度是0代表绝对温度,是可能温度的下界。下面是将摄氏温度转换成相对温度的方程:

Kelvin=Celsius+273.16

Temperatures()函数将用const来创建代表转换里的3个常量负号。main()函数将使用一个循环来允许用户重复地输入温度,当用户输入q或其他非数字值时,循环结束。}}

 

#include<stdio.h>

void Temperatures(double n)

{

         constdouble N=1.8;

         constdouble M=32.0;

         constdouble K=273.16;

         doubleCelsius,Kelvin;

         Celsius=(n-M)/N;

         Kelvin=Celsius+K;

         printf("%.2f℉=%.2f℃=%.2fT\n",n,Celsius,Kelvin);

}

 

void main()

{

         doubleFahrenheit;

         printf("请输入华氏温度\n");

        

         while(scanf("%lf",&Fahrenheit))

         {

                   Temperatures(Fahrenheit);

                   printf("请输入华氏温度\n");

         }

}

在编译的过程中发现一直得不到正确的结果,然后查看资料和数字改动终于知道哪个地方出错了,原来double类型的格式转换符是%lf而不是%f,还有要输入q或其它非数值字符时,循环结束。发现这个while(scanf("lf",&Fahrenhiet))可以实现。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值