If C compiler does not know the function signature, it deduces input parameters based on arguments supplied, and deduces return type to be
Either declare the function before you use it for the first time:
float calculate_fare(int stops);
or put entire definition at the top of your translation unit.
That is, the error:
[...] previous implicit declaration for 'calculate_fare' was here [...] // ^^^^^^^^ ^^^^^^^^^^^
states that the compiler had no previous declaration for the function, and had to generate one on its own.