C语言while循环和scanf返回值

我想用while来计算温度,写条件的时候本来是想让scanf返回值是1就循环,如果输入的是q就不循环,可是如果输入q就一直循环了,各位求问怎么破??
代码如下

#include "stdio.h"
void Temperatures(double Fahrenheit);

int main()//摄氏度Celsius、华氏度Fahrenheit、开氏度Kelvin
{
    double F;
    int x;
    printf("输入华氏温度,会计算摄氏温度和开氏温度:\n");
    x = scanf("%lf", &F);
    while(x = 1)
    {
        Temperatures(F);
        printf("继续输入下一个华氏温度:\n");
        x = scanf("%lf", &F);
    }
    return 0;
}

void Temperatures(double Fahrenheit)
{
    double Celsius;
    double Kelvin;
    Celsius = 5.0 / 9.0 * (Fahrenheit - 32.0);
    Kelvin = Celsius + 273.16;
    printf("%.2lf℉是%.2lf℃和%.2lfK。\n", Fahrenheit, Celsius, Kelvin);
}


#include "stdio.h"
void Temperatures(double Fahrenheit);
 
int main()//摄氏度Celsius、华氏度Fahrenheit、开氏度Kelvin
{
    double F;
    int x;
    printf("输入华氏温度,会计算摄氏温度和开氏温度:\n");
    x = scanf("%lf", &F);
    while(F = 1)
    {
        Temperatures(F);
        printf("继续输入下一个华氏温度:\n");
        scanf("%lf", &F);
    }
    return 0;
}
 
void Temperatures(double Fahrenheit)
{
    double Celsius;
    double Kelvin;
    Celsius = 5.0 / 9.0 * (Fahrenheit - 32.0);
    Kelvin = Celsius + 273.16;
    printf("%.2lf℉是%.2lf℃和%.2lfK。\n", Fahrenheit, Celsius, Kelvin);
}

while(x = 1) 改为 while(x == 1) 否则你的程序就是死循环啊

问题描述不清楚,程序也有问题。 while(x = 1)从语法上应该修改为while(x==1),但收入的q不能传入到接收的double类型。
因此这个问题的描述还要清楚写,才能给出具体解决办法。