Next: An Example with Arrays, Up: Beyond Integers [Contents][Index]
Here’s a function that operates on and returns floating point numbers that don’t have to be integers. Floating point represents a number as a fraction together with a power of 2. (For more detail, see Floating-Point Data Types.) This example calculates the average of three floating point numbers that are passed to it as arguments:
double average_of_three (double a, double b, double c) { return (a + b + c) / 3; }
The values of the parameter a, b and c do not have to be integers, and even when they happen to be integers, most likely their average is not an integer.
double
is the usual data type in C for calculations on
floating-point numbers.
To print a double
with printf
, we must use ‘%f’
instead of ‘%d’:
printf ("Average is %f\n", average_of_three (1.1, 9.8, 3.62));
The code that calls printf
must pass a double
for
printing with ‘%f’ and an int
for printing with ‘%d’.
If the argument has the wrong type, printf
will produce meaningless
output.
Here’s a complete program that computes the average of three specific numbers and prints the result:
double average_of_three (double a, double b, double c) { return (a + b + c) / 3; } int main (void) { printf ("Average is %f\n", average_of_three (1.1, 9.8, 3.62)); return 0; }
From now on we will not present examples of calls to main
.
Instead we encourage you to write them for yourself when you want
to test executing some code.