You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++课堂作业问题:如何让两个温度转换函数的输出并排显示?

解决温度转换程序的并排输出问题

我明白你的问题啦——现在你的两个转换函数各自在循环里独立输出内容,导致左边的摄氏转华氏全部打印完才轮到右边的华氏转摄氏,结果就变成了上下排列。要实现两边并排显示,我们需要调整代码的职责分工,把计算逻辑和输出逻辑分开,然后在main函数里同步控制每一行的输出。

修改思路

  1. 让转换函数只负责温度计算,不再处理循环和输出,这样函数更单一,也方便我们在main里灵活控制输出时机。
  2. 观察两边的循环次数:左边是从40到31(共10次),右边是从120到30每次减10(也是10次),刚好可以一一对应,同步输出每一行的左右内容。

修改后的C++代码

#include<iostream>
using namespace std;

// 只负责计算,不输出
double celsiusToFahrenheit(double celsius) {
    return (9.0 / 5.0) * celsius + 32.0;
}

// 只负责计算,不输出
double fahrenheitToCelsius(double fahrenheit) {
    return (fahrenheit - 32.0) * 5.0 / 9.0;
}

int main() {
    cout.setf(ios::fixed);
    cout.precision(2);
    
    // 打印表头
    cout << "Celsius \t" << "Fahrenheit \t" << "| \t" << "Fahrenheit \t" << "Celsius" << endl;
    
    // 同步遍历两边的温度值,每一行输出左右对应内容
    double celsius = 40.0;
    double fahrenheit = 120.0;
    while (celsius >= 31.0 && fahrenheit >= 30.0) {
        // 输出左边的摄氏转华氏
        cout << celsius << "\t\t" << celsiusToFahrenheit(celsius);
        // 输出分隔符和右边的华氏转摄氏
        cout << "\t\t| \t" << fahrenheit << "\t\t" << fahrenheitToCelsius(fahrenheit) << endl;
        
        // 更新循环变量
        celsius--;
        fahrenheit -= 10;
    }
    
    return 0;
}

修改说明

  • 重构了两个转换函数,让它们只专注于温度转换计算,符合单一职责原则。
  • 在main里用一个循环同步处理两边的温度值,每一次循环都输出完整的一行内容,确保左右两边是并排显示的。
  • 表头的格式也做了微调,让分隔符的位置更合理。

正确输出效果

Celsius 		Fahrenheit 	| 	Fahrenheit 	Celsius
40.00 		104.00 		| 	120.00 		48.89
39.00 		102.20 		| 	110.00 		43.33
38.00 		100.40 		| 	100.00 		37.78
37.00 		98.60 		| 	90.00 		32.22
36.00 		96.80 		| 	80.00 		26.67
35.00 		95.00 		| 	70.00 		21.11
34.00 		93.20 		| 	60.00 		15.56
33.00 		91.40 		| 	50.00 		10.00
32.00 		89.60 		| 	40.00 		4.44
31.00 		87.80 		| 	30.00 		-1.11

内容的提问来源于stack exchange,提问作者isannego

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 16:02:30