You need to READ the error messages, carefully...
The first one (line 12), a warning about an implicit declaration means that, at the time the compiler encountered the line of code, the function had not been declared. OK, it isn't declared and it needs to be. Where is my declaration? Why isn't it declared before the compiler encountered the line of code? Scanning the file from top to bottom, I can see that my function hasn't been defined before it is used. Hm... Maybe if I move the function to the top? Maybe I should read up on function prototypes (but that takes a little more experience). BTW, this is a common problem for new C programmers. My function is right there! It's in the file, right there! But it needs to be declared BEFORE it is called. Separate files require .h files to provide prototypes. That's coming up next!
Anyway, the compiler created a dummy declaration that had no return type. Just something to fill in the symbol table.
Then when the compiler encountered the declaration returning 'void' (line 30), there was a conflict in return types.
Modern compilers do give pretty good diagnostics.