Creating a chart in C ++

Problem

I am doing a Fahrenheit conversion and vice versa.

All my code works perfectly, but I'm not sure how to make the diagram the teacher wants.

The output is from 0 to 100 degrees Celsius and from 32 to 212 degrees Fahrenheit.

Here is my code:

#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; } 

Here is my conclusion:

 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 ... 

Here's what my teacher wants: Celsius from 0 to 100 degrees.

 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 ... 

And the same for Fahrenheit, but from 32 to 212 degrees ...

I know how to align numbers with words using setw (), but I'm not sure how to make columns.

Any ideas or suggestions would be appreciated!


Decision

Thank you all for your help. I figured this out for a moment.

 #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; } 

My conclusion:

 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 ... 
+4
source share
2 answers

You are already printing aligned columns, but they are not enough.

Start by printing

 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 ... 

and think about what you need to change in your program to print the chart you want.

+2
source

You are already printing line by line and printing 25 lines. Now think about the relationships that each column has for the previous columns for each row:

 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) ... 

The number of rows is the same value that you use to determine the number of loop cycles.

The baseC+X variable will take care of the baseC+X .

Note. This is pseudo code, so don't expect it to work directly :)

0
source

All Articles