在C语言中将值从一个函数传递到另一个函数

在C语言中将值从一个函数传递到另一个函数,c,function,variables,C,Function,Variables,我试图将一个函数确定的值传递给它后面的另一个函数。本质上:函数1决定一个值,比如x。然后X被传递给另一个函数,该函数专门将X显示为文本。它位于一个单独的函数中,其他函数也可以使用它来确定X的值。但是,我只得到0,而不是变量X。这里怎么了 float fahToCel(int userInput) { float result = 0; do { printf("\nPlease input your number in Fahrenheit units:"

我试图将一个函数确定的值传递给它后面的另一个函数。本质上:函数1决定一个值,比如x。然后X被传递给另一个函数,该函数专门将X显示为文本。它位于一个单独的函数中,其他函数也可以使用它来确定X的值。但是,我只得到0,而不是变量X。这里怎么了

float fahToCel(int userInput)
{
    float result = 0;
    do
    {
        printf("\nPlease input your number in Fahrenheit units:");
        scanf("%d", &userInput);
    } while (result = 0);
    result = (float)(((float)5.0f / (float)9.0f) * (float)(userInput - 32));
    return result;
}

float celToFah(int userInput){
    float result = 0;
    do
    {
        printf("\nPlease input your number in Celcius units:");
        scanf("%d", &userInput);
    } while (result = 0);
    result = (float)(((float)9.0f / (float)5.0f) * (float)(userInput + 32));
    return result;
}

float displayResult(float result) {
    printf("\nThe equivalent tempature is: %f\n", result);
    return result;
}

void inputInformation() {
    printf("1. Convert temperature input from the user in degrees Fahrenheit to 
    degrees Celsius.\n");
    printf("2. Convert temperature input from the user in degrees Celsius to 
    degrees Fahrenheit.\n");
    printf("3. Quit.\n ");
}


int main()
{
    int menuChoice = 0;
    int userInput = 0;
    int result = 0;
    while (1)
    {
        inputInformation();
        printf("Please make a selection now:");
        scanf("%d", &menuChoice);

        switch (menuChoice)
        {
            case 1:
                 fahToCel(userInput);
                 displayResult(result);
                 break;
            case 2:
                 celToFah(userInput);
                 displayResult(result);
                 break;
            case 3:
                 return 0;
            default:
                 printf("\nThat is not a choice!\n");
                 break;
        }
    }
}

您从不将结果分配给
result
。像这样改变:

result = fahToCel(userInput);
displayResult(result);

为什么要将
userInput
传递给调用的函数,而不是在函数中声明它们为局部变量?还要了解使用
=
赋值和使用
=
进行相等性比较之间的区别。最后,在循环内部的何处设置
结果的值(result=0)
应该是
而(result==0)
不相关的,降低演员阵容,例如:
fahToCel
表达式完全不需要你在表达式中乱扔演员的负担。演员阵容不是按单位计算的,所以除非是强制性的,否则请避免(并强烈质疑它是否是强制性的)。