C-Programm – Funktionen

closeDieser Beitrag wurde vor mehr als drei Monaten veröffentlicht. Bedenke bitte, dass die hier angebotene Information nicht mehr aktuell und gültig sein könnte. Informiere dich daher bitte auch an anderer Stelle über dieses Thema. Sollten sich neue Informationen ergeben haben, so kannst du mich auch gerne auf diese über einen Kommentar hinweisen. Vielen Dank!

Dies kurze Beispiel zeigt das Prinzip von Funktionen… und wie man das Maximum von drei Zahlen ausgibt. ;-)

#include <stdio.h>

// Funktion_1: max_1 (Maximum) mit drei Eingaengen
int max_1 (int a, int b, int c) {
	if(a>b && a>c)
		return a;
	else if(b>a && b>c)
		return b;
	else
		return c;
}

// Funktion_2: max_2 (Maximum) mit zwei Eingaengen
int max_2 (int a, int b) {
	if(a>b)
		return a;
	else
		return b;
}

int main (void){

	int a,b,c,max_3;

	printf("a");
	scanf("%d",&a);
	printf("b");
	scanf("%d",&b);
	printf("c");
	scanf("%d",&c);

	// Funktion_1
	printf ("%d", max_1(a,b,c));

	// Funktion_2 (wird 2-mal ineinander ausgefuehrt)
	printf ( "%d", max_2(max_2(a,b),c) );

	// alles in einer Zeile :-)
	max_3 = (a>b) ? ((a>c) ? a : c) : ((b>c) ? b : c);
	printf("%d", max_3);

	return (0);
}
  • Vinic28

    Was ich mich immer wieder frage … wieso benutzt du scanf, wo es doch als unsicher gilt, und nicht zb. fgets?

  • Tom

    Wäre für die Demonstration von funktionen nicht sinnvoller:
    int max_1 (int a, int b, int c) {
    return max_2(a,max_2(b,c));
    }
    Genau dafür sind ja eigentlich Funktionen da damit du nicht alles 12mal schreiben musst.

  • http://suckup.de/ Lars Moelleken

    Auch wenn scanf() nicht gegen einen Pufferüberlauf (Buffer Overflow) geschützt ist, kann man dies bei so einfachen Programmen verwenden, oder?! Zumindest taucht scanf in allen Büchern / Beispielen etc. auf…

  • http://suckup.de/ Lars Moelleken

    in dem Programm (oben) hab ich nur verschiedene Beispiele zusammengewürfelt, so dass man sieht, dass eine Funktion sich auch selber aufrufen kann…