Exercise 1.5 - Temperature Convertor in Reverse

Question

Modify the temperature conversion program to print the table in reverse order, that is, from 300 degrees to 0.

Solution

/***
 *
 * Temperature Conversion Program, Celsius to Fahrenheit!
 *
 * print Fahrenheit-Celsius table for fahr = 0,20 ... 300
 *
 ***/

#include <stdio.h>

int main(void) {
    float fahr, celsius;
    int lower, upper, step;

    lower = 0;
    upper = 300;
    step = 20;

    printf("C     F\n\n");
    celsius = upper;

    while (celsius >= lower) {
        fahr = (float) ((9.0 / 5.0) * celsius + 32.0);
        printf("%3.0f %6.1f\n", celsius, fahr);
        celsius = celsius - step;
    }

    return 0;
}

Explanation

In the previous exercise we converted Fahrenheit temperature to Celsius temperature. In this program we are going to print the table in reverse order, that is, from 300 degrees to 0. To do this we declare some variables in the beginning of the program so that they can be used in the later stages of the program. The variables in this program are: lower,upper,step, celsius,fahr. The variable lower is assigned the value 0 similarly upper to 300, step to 20, and Celsius to lower. So when the program enters the while loop it checks whether celsius <= upper is true if it is true then it assigns the variable fahr (9.0/5.0) * celsius + 32.0 and then it prints out put.