**Answer 1.**
You are probably new to Linux (or UNIX) and don't know that
you must tell the linker to link your program with the appropriate
libraries, e.g. instead of compiling with the following command:

gcc -o myprog myprog.cyou need to do:

gcc -o myprog myprog.c -lmThe "-lm" tells the linker to also look in the standard "maths" library which should be found in the standard place. (Your system should have at least /usr/lib/libm.a)

**Answer 2.**
Floating point numbers are an
approximation to Real numbers.
Floating point arithmetic is not exactly the same as Real
number arithmetic, but instead it is a useful approximation.
If you don't understand that the following is
true for Real numbers (provided that a is not zero), but is often
false for floating point numbers, even if there are *no* errors
in the floating point arithmetic,
then you should refer to a good text book and learn some of the
basics:

(1.0 / a) * a == 1.0