while()中间条件判断为真,继续循环。判断为假,死循环。(C Primer Plus 第五章5.11编程练习第9题)
编写一个程序,要求用户输入一个华氏温度。程序应读取double类型的值作为温度时,并把该值作为参数,传递给一个用户自定义的函数temperatures。该函数,计算设施温度和开式温度,并以小数点,后面两位数字精度显示三种温度,要使用不同的温标来表示这三个温度值,下面是华氏温度转摄氏温度的公式:
摄氏温度=5.0/9.0(华氏温度-32.0*)
开氏温度常用于科学研究,0表示绝对零,代表最低的温度,下面是,摄氏度转开氏温度的公式:
开氏温度=摄氏温度+273.16
Temperatures()函数用const,创建温度转换使用的变量在main()函数使用一个循环,让用户重复输入温度,当用户输入q或者其他非数字时,循环结束。scanf()函数返回读取的数据的数量,所以如果读取数字,则返回1,如果读取q,则不返回1可以使用等于运算符将是服的返回值和1作比较,测试两值是否相等。
输入非数字死循环代码
#include<stdio.h>
int Temperatures(float n);
float temp, degree, degree_k;
int rv = 1;
int main(void)
{
printf("Enter Tempertures Number:");
int rv=scanf("%f", &temp);
while (rv!=0)
{
Temperatures(temp)