【发布时间】:2021-06-17 13:07:30
【问题描述】:
我正在制作一个包含摄氏度值的表格,这些值可以转换为华氏度,反之亦然。
这是我希望代码输出的内容:
Celsius Fahrenheit | Fahrenheit Celsius
40.0 104.0 | 120.0 48.89
39.0 102.2 | 110.0 43.33
问题在于,我无法将第二部分输出到表格的另一边。
这是代码输出的(不是我想要的):
Celsius Fahrenheit | Fahrenheit Celsius
40.0 104.0 |
39.0 102.2 |
120.0 48.89
110.0 43.33
这是我的代码
#include <iostream>
#include <math.h>
#include <string>
#include <iomanip>
using namespace std;
double celsiusToFahrenheit(double f1);
double fahrenheitToCelsius(double c2);
int main(){
double f1;
double c2;
cout<< left <<setw(10)<< left << "Celsius" << right<< setw(10) << "Fahrenheit | " << setw(10) << "Fahrenheit" << right << setw(10)<< "Celsius"<< endl;
cout<< left<< setw(10)<< left << celsiusToFahrenheit(f1) << right << setw(10)<< fahrenheitToCelsius(c2)<< endl;
return 0;
}
double celsiusToFahrenheit(double f1){
for(double c1 = 40.0; c1 > 30.00; c1--){
f1 = (c1 * (9.0/5.0)) + 32.0;
cout<< left <<setw(10)<< left << c1<< right<< setw(10) << f1 << right<<" | "<< endl;
}
return f1;
}
double fahrenheitToCelsius(double c2){
for(double f2 = 120.0; f2 > 29.00; f2--){
c2 = ((5.0/9.0) * (f2 - 32.0));
cout<< left <<setw(10)<< left << f2<< right<< setw(10) << c2 << right<< endl;
}
return c2;
}
【问题讨论】:
-
提示:做一个转换函数,接受一个温度并返回一个转换值。这两个人做了一大堆其他事情,混淆了他们的责任。您真正需要的是一个绘制表格行的演示器函数,另一个执行特定转换的对,以及可能需要一个范围的第三个表格生成器函数,一个转换器函数(理想情况下是
std::function或 lambda),然后发出桌子。 -
@Andrew Tang:您是关于华氏温度和摄氏度的问题,还是关于“如何在流中使用 left、right、setw(10) 和 endl 来绘制表格?”的问题。请换个问题。背景:建议编辑的队列已满。因此,我无法更改有关 stackoverflow 的问题及其技术原因。谢谢。
标签: c++ function methods double converters