Wie Dir die C-Ente bereits erzählt hat, kann man in C mehrere Funktionen definieren. Dein C-Programm ist somit eine "Ansammlung" von Funktionen.

Aber jetzt wird Dir Deine C-Ente sogar auch "vorschnattern", wie Du einer Funktion auch Werte (z.B. Zeichenketten oder Zahlen) übergeben kannst!

Beispiel 1:

void Taube (string Farbe) {
   printf("Ich bin eine Taube und bin " + Farbe + "\n");
}

void main () {
   Taube ("grau");
   Taube ("weiss");
   Taube ("braun");
}

Interessant ist die Funktion "Taube" - void Taube (string Farbe). In der Funktion main() steht z.B. "Taube ("grau");" Das bedeutet, dass die Funktion "Taube" aufgerufen wird, und die Funktion "Taube" weiß danach, dass die Farbe gleich grau ist! Man sagt auch, der Wert "grau" wird der Funktion übergeben.

Oben bei "void Taube (string Farbe)" siehst Du in der Klammer "string Farbe". "Farbe" ist die Variable, die den Wert grau "auffängt", sodass die Funktion mit dem übergebenen ("aufgefangenen") Wert weiterarbeiten kann!


Beispiel 2:

int BerechneFedern (int FedernEinerEnte, int AnzahlEnten)
{
   int FedernInsgesamt;
   FedernInsgesamt = AnzahlEnten * Federn;
   return FedernInsgesamt;
}

void main () {
   int anzFedern;
   int anzEnten;
   int anzFedernGesamt;
   printf("Wieviele Federn hat denn eine Ente? "); scanf(anzFedern);
   printf("\n");
   printf("Wieviele Enten schwimmen im Teich? "); scanf(anzEnten);
   anzFedernGesamt = BerechneFedern (anzFedernProEnte, anzEnten);
   printf("Im Teich gibt es " + anzFedernGesamt + " Federn!");
}

Wie Du siehst, kannst Du statt einem Parameter in den runden Klammern auch mehrere Parameter übergeben.

Diese Funktion hat eine weitere Besonderheit! Sie kann auch ein Ergebnis zurückliefern!

Das erkennst Du in dieser Zeile: int BerechneFedern..... --> "int" bedeutet, dass der Rückgabewert ein Integer ist.

Wie wird der Wert zurückgegeben? Ganz einfach über das Schlüsselwort "return".

Du wirst Dich jetzt sicher fragen, was bedeutet bei void main () dieses "void" ?

Dies bedeutet nur, dass diese Funktion nichts zurückliefert. Man bezeichnet diese Funktion, die nichts zurückliefert, auch als Prozedur.

Eine Funktion ist in C kann man allgemein so definieren:

Typ Funktionsname (Parameter) {
   Anweisungsblock
}

Herausforderung:

Ändere das Beispielprogramm, das die Anzahl der Federn berechnet, so um, dass der Benutzer die Anzahl der Entenweibchen und die Anzahl der Entenmännchen (Enteriche) eingeben kann. Das Programm soll aus diesen drei Eingaben (Anz. Weibchen, Anz. Männchen, Federn pro Ente) die Gesamtzahl der Federn berechen.