首页 > 解决方案 > C++ 在函数之间传递变量

问题描述

我不太确定我在这里搞砸了什么。我正在制作一个将华氏温度转换为摄氏度的基本程序。我不知道如何将 f 变量传递给 calcC 函数。我得到的只是华氏温度的提示,然后它告诉我它是 0 摄氏度。

    #include <iostream>
using namespace std;

// function prototypes

double getF();
double calcC();

int main(){

    // declare variables
    double f = 0.0;
    double c = 0.0;

    // call getF
    getF();

    // call CalcC
    calcC();

    cout << c << " degrees celsius." << endl;

    return 0;
} // end of main function

// function definitions

double getF(){

    double f = 0.0;
    
    // prompt user
    cout << "Enter farenheit: ";
    cin >> f;
    return f;
} // end of getF function

double calcC(){

    double c = 0.0;
    double f = 0.0;

    // calculate celsius
    c = (5 / 9) * f;

    return c;
} // end of calcC function

我还应该注意,我对此很陌生,所以如果我犯了一个非常愚蠢的错误,我深表歉意。

标签: c++

解决方案


您忽略了 and 的返回值,getF()并且calcC()根本没有将任何内容传递给calcC().

calcC()正在对 执行整数运算(5 / 9)这将导致0,而不是0.555...您的公式所要求的。您需要改用浮点运算。此外,您的公式是错误的,因为您需要从华氏温度中减去 32。因此,即使您将值传递给calcC(),您也不会得到正确的结果。

尝试更多类似的东西:

#include <iostream>
using namespace std;

double getF();
double calcC(double);

int main() {
    double f = getF();
    double c = calcC(f);
    cout << c << " degrees celsius." << endl;
    return 0; 
}

double getF() {
    double f = 0.0;
    cout << "Enter farenheit: ";
    cin >> f;
    return f;
}

double calcC(double f) {
    return (5.0 / 9.0) * (f - 32) ;
}

推荐阅读