C++输出对齐


#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
double start_temp, end_temp, incr, fahrenheit, celsius, kelvin;
do
{
cin >> start_temp >> end_temp >> incr;
if (start_temp > end_temp || incr <= 0)
{
cout << "Starting temperature must be <= ending temperature and increment must be > 0.0n";
}
} while (start_temp > end_temp || incr <= 0);
cout << fixed << setprecision(4);
cout << "n"
<< left << setw(18) << "Fahrenheit" << right << setw(18) << "Celsius" << setw(18) << "kelvin";
for (fahrenheit = start_temp; fahrenheit <= end_temp; fahrenheit = fahrenheit + incr)
{
celsius = (fahrenheit - 32) / 1.8;
kelvin = celsius + 273.15;
cout << "n"
<< left << setw(18) << fahrenheit << right << setw(18) << celsius << right << setw(18) << kelvin;
}
return 0;
}

数字宽度应为18个字符,精度为4位,并且需要采用固定格式。不要使用制表符(\t(输出值。。。。。。。。。。这就是我的输出:

-30 100 20
Fahrenheit                   Celsius            kelvin
-30.0000                    -34.4444          238.7056
-10.0000                    -23.3333          249.8167
10.0000                     -12.2222          260.9278
30.0000                      -1.1111          272.0389
50.0000                      10.0000          283.1500
70.0000                      21.1111          294.2611
90.0000                      32.2222          305.3722

我在华氏度栏中的数字没有正确对齐。。。。。。。。我希望我的输出与论文完全一样以下是一个带有有效输入的示例运行:

-30 100 20输出为:

Fahrenheit           Celsius            Kelvin
-30.0000          -34.4444          238.7056
-10.0000          -23.3333          249.8167
10.0000          -12.2222          260.9278
30.0000           -1.1111          272.0389
50.0000           10.0000          283.1500
70.0000           21.1111          294.2611
90.0000           32.2222          305.3722

考虑以下输入:100.5 110.4 5有效输出为:

Fahrenheit           Celsius            Kelvin
100.5000           38.0556          311.2056
105.5000           40.8333          313.9833

我有点被卡住了。请帮助

当它应该是右对齐时,您有左对齐。

cout << "n"
<< right << setw(18) << "Fahrenheit" << right << setw(18) << "Celsius" << setw(18) << "kelvin";

cout << "n"
<< right << setw(18) << fahrenheit << right << setw(18) << celsius << right << setw(18) << kelvin;
}

运行样本

输出:

Fahrenheit           Celsius            kelvin
-30.0000          -34.4444          238.7056
-10.0000          -23.3333          249.8167
10.0000          -12.2222          260.9278
30.0000           -1.1111          272.0389
50.0000           10.0000          283.1500
70.0000           21.1111          294.2611
90.0000           32.2222          305.3722

最新更新