Temperatures()函数中用const创建温度转换中使用的变量.在main()函数中使用一个循环让用户重复输入温度,当用户输入q或其他非数字是,循环结束。scanf()函数 返回读取数据的数量,所以如果读取数字则返回1,如果读取q则不返回1.可以使用==运算符将scanf()的返回值和1比较,测试两值是否相等。 */

/编写一个程序,要求用户输入一个华氏温度。程序应读取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;
}

posted on 2024-07-27 23:05  wessf  阅读(4)  评论(0编辑  收藏  举报