用C制作图表
发布时间:2020-12-16 07:27:08 所属栏目:百科 来源:网络整理
导读:问题 我正在向华氏转换器提供摄氏温度,反之亦然. 我的所有代码都很完美,但我不知道如何制作老师想要的图表. 输出为0到100摄氏度,32到212华氏度. 这是我的代码: #include iostream#include cstdlib#include iomanipusing namespace std;using std::setw;int
问题
我正在向华氏转换器提供摄氏温度,反之亦然. 我的所有代码都很完美,但我不知道如何制作老师想要的图表. 输出为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 ... 这是我老师想要的: 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,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 * 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 ... 解决方法
你已经打印了对齐的列,只是它们不够.
首先打印出来 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 ... 并考虑在程序中需要更改哪些内容以打印所需的图表. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |