/编写一个程序,要求用户输入一个华氏温度。程序应读取double类型的值作为温度值,并把该值作为参数传递该一个用户自定义的函数Temperatures()。
该函数计算摄氏温度和开氏温度,并以小数点后面两位数字的精度显示3种温度。要求使用不同的温度标签来表示这3个温度值。下面是华氏温度转摄氏温度的公式:
摄氏温度 =5.0/9.0(华氏温度-32.0)
开氏温标常用于科学研究,0表示绝对零,代表最低的温度。下面是摄氏温度转开氏温度的公式:
开氏温度 =摄氏温度+273.16
Temperatures()函数中用const创建温度转换中使用的变量.在main()函数中使用一个循环让用户重复输入温度,当用户输入q或其他非数字是,循环结束。scanf()函数
返回读取数据的数量,所以如果读取数字则返回1,如果读取q则不返回1.可以使用==运算符将scanf()的返回值和1比较,测试两值是否相等。
*/
在这里用到sscanf()函数,目的是把字符串转换为double类型,sscanf()函数根据形参format格式转换
void Temperatures(double fahrenheit)
{
double celsius=5.0/9.0*(fahrenheit-32.0);
double kelvin=celsius+273.16;
printf(" %.2f℃ %.2f℉ %.2fK",celsius,fahrenheit,kelvin);
}
int main(void)
{
double water;
char input[10];
double fahrenheit;
printf("please enter Fahrenheit temperature if enter [p] or char return\n");
while(1)
{
if(scanf("%s",input)!=1)
{
break;
}
if((input[0]>='a' && input[0]<='z') || (input[0]>='A'&&input[0]<='Z'))
{
break;
}
if(sscanf(input,"%lf",&fahrenheit)!=1)
{
break;
}
Temperatures(fahrenheit);
}
return 0;
}
标签:返回,摄氏温度,读取,double,scanf,温度,函数
From: https://www.cnblogs.com/yesiming/p/18327671