# C Functionality

In Part 1-2 , we talked a little about functions in order to understand what ``` main() ``` was. Here we will take a much more detailed tour through functions.
Consider the program:
```#include <stdio.h>
#include <math.h>
float pythag(float side_a, float side_b);
float square(float x);
main()
{
printf("What lengths are the adjacent and opposite sides? ");
printf("The length of the hypotenuse is %f\n", hypotenuse);
}
float pythag(float side_a, float side_b)
{
return sqrt(square(side_a) + square(side_b));
}
float square(float x)
{
return x * x;
}
```

(We've left out the comments as we will do in most of the examples in this tutorial.)

Looking at the functions for ``` pythag() ``` and ``` square() ``` at the bottom of the program, we see that they look a lot like the function declarations for main that we've already seen, but with some additional features. (Ignore the ``` pythag ``` and ``` square ``` at the beginning of the program for now. We'll see what that's for in Part 2-5. ) In particular they specify parameters and return types. The function:

```float square(float x)
{
return x * x;
}
```

can be read as the C translation of the English sentence:
The floating point square of a floating point number, x, is given by x * x.
The first ``` float ``` , as in ``` float square(... ``` , specifies that the function square will return a floating point number as its result. The ``` float x ``` inside the parentheses specified that ``` square ``` will take one argument (or parameter ) which is a floating point number and it will be called ``` x ``` inside the function. If the function takes more than one parameter, then we list them separated by commas as in the definition of ``` pythag() ``` .
Give the first line of a function definition (up to but not including the opening brace ({)) for a function called ``` conv ``` that takes an integer argument (call it ``` x ``` ) and produces a character as output. (Remember Part 1-4 lists some of the common data types in C.)