C++ 输出对齐
C++ output alignment
#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.0\n";
}
} 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
我很善良stuck.Please帮助
本该右对齐的时候左对齐。
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
#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.0\n";
}
} 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
我很善良stuck.Please帮助
本该右对齐的时候左对齐。
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