K&R C Exercise 1-8: Count Blanks, Tabs, and Newlines

Exercise 1-8. Write a program to count blanks, tabs, and newlines. Approach The solution maintains three independent counters and reads one character at a time using the canonical getchar() loop. The key design decision is using three separate if statements rather than else if. In this case a character can only ever be one thing …

K&R C Exercise 1-7: Print the Value of EOF

Exercise 1-7. Write a program to print the value of EOF. This is one of those exercises that looks trivial — one printf and you’re done — but it opens the door to one of the most important design decisions in the C standard library. Before you can really understand why Chapter 1’s input loops …

K&R C Exercise 1-6: Verify getchar() != EOF is 0 or 1

Exercise 1-6. Verify that the expression getchar() != EOF is 0 or 1. What This Exercise Is Really About This is not a “write a loop” exercise — it is a verification exercise, and the thing being verified is a fundamental rule of C that surprises many beginners: every relational expression in C evaluates to …

K\&R C Exercise 1-5: Reverse Temperature Table (300 to 0)

Exercise 1-5. Modify the temperature conversion program to print the table in reverse order, that is, from 300 degrees to 0. Approach The original K&R temperature program counts up: it starts fahr at 0, adds the step each iteration, and stops when fahr > 300. Reversing the table means changing exactly three things: (1) start …

K&R C Exercise 1-3: Add a Heading to the Temperature Table

Exercise 1-3. Modify the temperature conversion program to print a heading above the table. What the Base Program Does K&R Section 1.2 introduces a program that prints a Fahrenheit-to-Celsius conversion table from 0 to 300 in steps of 20. It uses integer arithmetic — celsius = 5 * (fahr – 32) / 9 — and …