Aber aus lauter Trotz bleibe ich jetzt bei C
Ich denk mal, da machst Du sicher keinen Fehler.
Eine der wichtigsten Erkenntnisse von C ist, das der Compiler von oben nach unten arbeitet.
Nur das was oben definiert ist kann dein Programm darunter auch nutzen.
Deshalb steht da auch die main Routine ganz unten.
Wenn er mal ne Routine nicht findet, obwohl sie vorhanden ist, denk mal wie der Compiler und guck, ob die Routine vor der aufrufenden steht.
Damit hatte ich Anfangs die meisten Probleme.

Was mich persönlich bei C auch etwas nervt ist, das man für "Sonderfunktionen" immer erst die entsprechenden Includes im Programm machen muss.
Also für Mathematische Funktionen, String Verarbeitung usw. müssen immer die entsprechenden Includes eingefügt werden.
Aber C ist halt ein Baukasten, aus dem man sich halt nur nimmt, was man auch für seine Anwedung braucht.