Exercise 1-3

Modify the temperature conversion program to print a heading above the table.

We know that in order to print words to the screen, we use the printf function, so let us add the line printf("Fahr Celsius\n") to print "Fahr Celsius" followed by a newline prior to executing the while-loop.

    #include <stdio.h>
    
    /* print Fahrenheit-Celsius table
        for fahr = 0, 20, ..., 300; floating-point version */
    main()
    {
        float fahr, celsius;
        int lower, upper, step;
    
        lower = 0;      /* lower limit of temperature table */
        upper = 300;    /* upper limit */
        step = 20;      /* step size */
    
        printf("Fahr Celsius\n");
        fahr = lower;
        while (fahr <= upper) {
            celsius = (5.0/9.0) * (fahr-32.0);
            printf("%3.0f %6.1f\n", fahr, celsius);
            fahr = fahr + step;
        }
    }

After compiling the code and executing it, we get the following result:

    Fahr Celsius
      0  -17.8
     20   -6.7
     40    4.4
    ...

We forgot to update the widths of our fields! Let us update our code so that the Fahrenheit and Celsius temperatures take up four and seven characters respectively in order to align with the headings.

    #include <stdio.h>
    
    /* print Fahrenheit-Celsius table
        for fahr = 0, 20, ..., 300; floating-point version */
    main()
    {
        float fahr, celsius;
        int lower, upper, step;
    
        lower = 0;      /* lower limit of temperature table */
        upper = 300;    /* upper limit */
        step = 20;      /* step size */
    
        printf("Fahr Celsius\n");
        fahr = lower;
        while (fahr <= upper) {
            celsius = (5.0/9.0) * (fahr-32.0);
            printf("%3.0f %6.1f\n", fahr, celsius);
            printf("%4.0f %7.1f\n", fahr, celsius);
            fahr = fahr + step;
        }
    }

Now we get the intended output.

    Fahr Celsius
       0   -17.8
      20    -6.7
      40     4.4
    ...