我正在向华氏转换器提供摄氏温度,反之亦然。
我的所有代码都很完美,但我不知道如何制作老师想要的图表。
输出为0到100摄氏度,32到212华氏度。
这是我的代码:
#include <iostream>
#include <cstdlib>
#include <iomanip>
using namespace std;
using std::setw;
int i;
int ftemp;
int ctemp;
int farToC(int a, int b);
int celToF(int a, int b);
int main (int argc, const char * argv[])
{
cout << "Farenheit equivalents of Celsius temperatures: " << endl;
for(i = 0; i < 5; i++)
{
cout << "Celsius Farenheit ";
}
cout << endl;
for(i = 0; i < 101; i++)
{
cout << setw(7) << i << setw(8) << " " << celToF(i, ftemp)<< endl;
}
cout << endl;
cout << "Celsius equivalents of Farenheit temperatures: " << endl;
for(i = 0; i < 5; i++)
{
cout << "Fahrenheit Celsius ";
}
cout << endl;
for(i = 32; i < 213; i++)
{
cout << setw(10) << i << setw(7) << " " << farToC(i, ctemp)<< endl;
}
cout << endl;
}
int farToC(int a, int b)
{
b = (a - 32) * 5 / 9;
return b;
}
int celToF(int a, int b)
{
b = (a * 9/5) + 32;
return b;
}
这是我的输出:
Farenheit equivalents of Celsius temperatures:
Celsius Farenheit Celsius Farenheit Celsius Farenheit Celsius Farenheit Celsius Farenheit
0 32
1 33
2 35
3 37
4 39
5 41
6 42
7 44
8 46
9 48
10 50
...
Celsius equivalents of Farenheit temperatures:
Fahrenheit Celsius Fahrenheit Celsius Fahrenheit Celsius Fahrenheit Celsius Fahrenheit Celsius
32 0
33 0
34 1
35 1
36 2
37 2
38 3
39 3
40 4
41 5
42 5
...
这是我老师想要的: 摄氏度从0到100度。
Farenheit equivalents of Celsius temperatures:
Celsius Farenheit Celsius Farenheit Celsius Farenheit Celsius Farenheit Celsius Farenheit
0 32 25 77 50 122
1 33 26 78 51 123
2 35 27 80 52 125
3 37 28 82 53 127
4 39 29 84 54 129
5 41 30 86 55 131
6 42 31 87 56 132
7 44 32 89 57 134
8 46 33 91 58 136
9 48 34 93 59 138
10 50 35 95 60 140
...
华氏温度相同,但从32度到212度......
我知道如何使用setw()将数字与单词对齐,但我不知道如何做列。
任何想法或建议都将不胜感激!
感谢大家的帮助。我想了几分钟后想出来了!
#include <iostream>
#include <cstdlib>
#include <iomanip>
using namespace std;
using std::setw;
int i;
int k;
int ftemp;
int ctemp;
int farToC(int a, int b);
int celToF(int a, int b);
int main (int argc, const char * argv[])
{
cout << "Farenheit equivalents of Celsius temperatures: " << endl;
for(i = 0; i < 5; i++)
{
cout << "Celsius Farenheit ";
}
cout << endl;
for(k = 0; k < 25; k++)
{
for(i = 0; i < 101; i+= 25)
{
cout << setw(7) << i+k << setw(10) << celToF(i+k, ftemp) << " " << setw(10);
}
cout<< endl;
}
cout << endl;
cout << "Celsius equivalents of Farenheit temperatures: " << endl;
for(i = 0; i < 5; i++)
{
cout << "Fahrenheit Celsius ";
}
cout << endl;
for(k = 0; k < 45; k++)
{
for(i = 32; i < 213; i += 45)
{
cout << setw(10) << i+k << setw(8) << farToC(i+k, ctemp) << " " << setw(12);
}
cout << endl;
}
cout << endl;
}
int farToC(int a, int b)
{
b = (a - 32) * 5 / 9;
return b;
}
int celToF(int a, int b)
{
b = (a * 9/5) + 32;
return b;
}
我的输出:
Farenheit equivalents of Celsius temperatures:
Celsius Farenheit Celsius Farenheit Celsius Farenheit Celsius Farenheit Celsius Farenheit
0 32 25 77 50 122 75 167 100 212
1 33 26 78 51 123 76 168 101 213
2 35 27 80 52 125 77 170 102 215
3 37 28 82 53 127 78 172 103 217
4 39 29 84 54 129 79 174 104 219
5 41 30 86 55 131 80 176 105 221
6 42 31 87 56 132 81 177 106 222
7 44 32 89 57 134 82 179 107 224
8 46 33 91 58 136 83 181 108 226
9 48 34 93 59 138 84 183 109 228
10 50 35 95 60 140 85 185 110 230
...
Celsius equivalents of Farenheit temperatures:
Fahrenheit Celsius Fahrenheit Celsius Fahrenheit Celsius Fahrenheit Celsius Fahrenheit Celsius
32 0 77 25 122 50 167 75 212 100
33 0 78 25 123 50 168 75 213 100
34 1 79 26 124 51 169 76 214 101
35 1 80 26 125 51 170 76 215 101
36 2 81 27 126 52 171 77 216 102
37 2 82 27 127 52 172 77 217 102
38 3 83 28 128 53 173 78 218 103
39 3 84 28 129 53 174 78 219 103
40 4 85 29 130 54 175 79 220 104
...
答案 0 :(得分:2)
你已经打印了对齐的列,但还不够。
首先打印
Farenheit equivalents of Celsius temperatures:
Celsius Farenheit Celsius Farenheit Celsius Farenheit Celsius Farenheit
0 32 0 32 0 32 0 32
1 33 1 33 1 33 1 33
...
并考虑在程序中需要更改哪些内容以打印所需的图表。
答案 1 :(得分:0)
您已经逐行打印,并打印出25行。现在考虑每列与每行的前一列之间的关系:
baseC toF(baseC) baseC+numRows toF(baseC+numRows) baseC+(2*numRows) ...
baseC+1 toF(baseC+1) baseC+1+numRows toF(baseC+1+numRows) baseC+1+(2*numRows) ...
行数与用于计算循环次数的值相同。
循环变量将处理baseC+X
部分。
注意:这是伪代码,所以不要指望它直接工作:)