Jump to: navigation, search

The C Programming Language, 2nd Edition, by Kernighan and Ritchie
Exercise 1.03 on page 13

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



Solution by Richard Heathfield

#include <stdio.h>

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

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

  printf("F     C\n\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;
  }
  return 0;
}

Solution by sl4y3r 0wn3r

/*
Exercise 1-3. Modify the temperature conversion program to print a heading
above the table.
*/

#include <stdio.h>

/* print Fahrenheit-Celsius table
    for fahr = 0, 20, ..., 300; floating-point version */
int main(void)
{
  float fahr, celsius;
  int lower, upper, step;

  lower = 0;      /* lower limit of temperature table */
  upper = 300;    /* upper limit */
  step = 20;      /* step size */

  fahr = lower;
  while (fahr <= upper) {
    celsius = (5.0/9.0) * (fahr-32.0);
  /* changing the printing format */
    printf("%3.0f\t%3.1f\n", fahr, celsius);
  /* this piece of code has been changed as well */
    fahr += step;
  }
  printf("Fahr\tCelsius\n");

  return 0;
}

Output:

  0	-17.8
 20	-6.7
 40	4.4
 60	15.6
 80	26.7
100	37.8
120	48.9
140	60.0
160	71.1
180	82.2
200	93.3
220	104.4
240	115.6
260	126.7
280	137.8
300	148.9
Fahr	Celsius
Personal tools