c++ - 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
我还应该注意,我对此很陌生,所以如果我犯了一个非常愚蠢的错误,我深表歉意。
解决方案
您忽略了 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) ;
}
推荐阅读
- java - 是否有一种设计模式支持注入几个抽象类实现并有条件地使用注入的 bean 之一
- apache-kafka-streams - 卡夫卡工作分配和完成
- html - 如何在浏览器中修复错误的 https
- c# - SSO Request.IsAuthenticated 在第一次登录后始终为 false,但第一次 SSO 登录工作正常
- python - 重用参数或使用自我
- macros - 如何从 Kentico CMS 中的预览模式解析宏
- javascript - JavaScript 嵌套 for 循环更改标签
- python - Dash Daq 温度计/仪表/LED 显示屏的颜色变化
- excel - VBA 编译错误:将 Excel 保存为 PDF for Excel 2019 的语法错误
- c# - 使用 HttpClient 和 HttpRequestMessage 的并发问题