CSC 161.01 | Grinnell College | Fall, 2019 |
![]() |
CSC 161.01
Imperative Problem Solving with Lab |
![]() |
As a first program in C, consider the following code that converts a number of quarts to liters. Commentary after the program explains each element of this program. A subsequent section explains how this program may be run.
/* A simple program to convert a number of quarts to liters Version 1: global variables only */ #include <stdio.h> /* reference to standard I/O library */ int main () /* beginning of main program */ { printf ("This program converts a number of quarts to liters\n"); /* write opening statement */ /* declaration of variables, with their types */ int quarts; /* int means integer (no decimal point) */ double liters; /* double means real number */ quarts = 2; /* specify the number of quarts as 2 */ liters = quarts / 1.056710 ; /* arithmetic and assignment */ printf ("%d quarts = %lf liters\n", quarts, liters); /* write text and new line */ return 0; /* the program ran without errors */ }
quarts.c
program
Comments in C begin anywhere with the symbols /*
,
continuing until the symbols */
, on the same or later lines.
C makes use of libraries for many common operations, including
the stdio
library for input (reading from the keyboard) and output
(printing). The statement
#include <stdio.h>
instructs the machine how to use the stdio
operations.
Each C program contains a driver function/procedure, called
main
. Here, main uses no input parameters (hence the
parentheses with nothing between them following main
). In
standard C, the main
function/procedure returns an integer as
an error code (hence the int
before main
). When
the program runs normally, without error, the integer 0 is usually
returned.
Variables may be declared globally or at the start of a C function.
Here, quarts
and liters
are declared within
the main procedure as integer and real variables, respectively.
The term double
specifies a real number, stored using double
precision. (The term float
may be used for single precision,
real numbers.)
Braces {
and }
are used in C to mark the
beginning and ending of blocks. In this case, the braces indicate the
statements for the main
procedure.
Semicolons (;) are used to terminate every statement in C.
The equal sign (=) is used for assignment. (We will see later that == is used for the comparison operator.)
Arithmetic operations include +, –, *, and / for addition, subtraction, multiplication, and division. For integers, the division operation / yields the integer quotient, while the modulus operation % gives the remainder.
printf
is used for output. The first parameter is a string, which
indicates how the output will be formatted.
" "
, and the
characters are printed exactly as given.
\n
stands for a new-line character,
\t
stands for a tab character,
\"
stands for a double quote character, and
\\
stands for the backslash character itself.
printf
gives the type of data to be displayed:
"%d"
stands for a (decimal) integer,
"%f"
stands for a (floating point) real number,
"%lf"
stands for a double precision (long) real number,
"%c"
stands for a (single) character,
"%s"
stands for a character string.
To prepare a program in C, one uses a text editor, such as emacs or vi. Do not use a word processing package, such as Word, OpenOffice, or LibreOffice, because these packages insert extensive formatting and font information that will confuse the computer as it tries to follow the instructions in your program.
Once the program has been written with the editor and saved, the program
must be translated from C to machine language. (In Scheme, such work is
done behind the scenes, but in C the translation must be made explicit.)
The translation is called compiling, and the utility used to compile
a program is called a compiler. A common compiler for C is
called gcc
.
The following interaction in a terminal window shows a sample session,
including writing, translating, and running quarts.c
.
perlis$ emacs quarts.c & perlis$ gcc -o quarts quarts.c perlis$ ./quarts This program converts a number of quarts to liters 2 quarts = 1.892667 liters
In this example, emacs quarts.c &
starts
the emacs
editor to prepare a new program
called quarts.c
. The ampersand (&) allows editing to take
place while the terminal window can still be used for other activities.
To compile the program, the line gcc -o quarts quarts.c
uses
the gcc
with the program we have edited
(quarts.c
). The directive -o quarts
indicates we
want the compiler to place our translated program in an output file
called quarts
.
Warning: Be sure the name of the output file (quarts
)
is different from the name of your original program
(quarts.c
). If you use the same name for both, your
original program will be overwritten and lost!
You run the translated program by typing ./quarts
. As
with any command in a terminal window, the prefix ./
indicates
that this program may be found in your current directory.
This document is available on the World Wide Web as
http://www.walker.cs.grinnell.edu/courses/161.fa11/modules/module-getting-started/quarts-annotated.shtml
created created 18 July 2011 last revised 18 July 2011 |
![]() ![]() |
For more information, please contact Henry M. Walker at walker@cs.grinnell.edu. |
![]() |
Copyright © 2011-2016
by Henry M. Walker.
|