Wiso kommt hier immer 12 raus?Code:#include <stdio.h> int fak(int n, int erg){ if(n>1){ erg*=n; fak(n-1, erg); } else{ return erg; } } int main(){ int eing; printf("Bitte Zahl eingeben: \n"); scanf("%i",&eing); printf("Ergebnis:%3i\n", fak(eing, 1)); return 0; }
Und gibs ne Möglichkeit einen Standardwert für die Übergabeparameter festzulegen?
also ich meine wie in java:
Code:public int fak(int n, int erg=1){...}
+ Antworten
Ergebnis 1 bis 10 von 10
fehler in fakultätsfunktion
Diskussion über fehler in fakultätsfunktion in C und C++ der Kategorie Programmierung; Code: #include <stdio.h> int fak(int n, int erg){ if(n>1){ erg*=n; fak(n-1, erg); } else{ return erg; } } int main(){ ...
- 10.02.2012 12:56 #1Reg.-Benutzer
- Reg.-Datum
- 10.02.2012
- Beiträge
- 4
fehler in fakultätsfunktion
- 10.02.2012 13:06 #2
- 10.02.2012 13:11 #3
Offizielles Alt-Mitglied im Club der Schokoholiker und bekennender Knipser
"Onkel, der den Kindern nur Blödsinn beibringt"
------------------------------------
Fachbegriffe der Informatik
320: Softwarewartung
Flags putzen, Strukturen nachrichten und Variablen mit Öl auffüllen. (Hans Bonfigt)
- 10.02.2012 13:26 #4Reg.-Benutzer
- Reg.-Datum
- 10.02.2012
- Beiträge
- 4
Also bei eingabe 1 kommt 1 raus. bei allen anderen getesteten eingaben ist das ergebnis 12.
wenn ich die zeiledurchCode:int fak(int n, int erg){ersetze bekomme ich bei der compilierung die fehlermeldung:Code:int fak(int n, int erg=1){fak.c:23: error: expected ';', ',' or ')' before '=' token
- 10.02.2012 13:28 #5
Was für einen Compiler benutzt du denn?
Ich bin Guybrush Threepwood, ein mächtiger Pirat!
- 10.02.2012 13:46 #6
Administrator + Moderator
C++: Compiler, IDEs, APIs / C und C++, Algorithmik, Basic, Sonstige, .NET
- Reg.-Datum
- 10.07.2001
- Ort
- Essen
- Beiträge
- 8.980
Ich muss mich korrigieren: Defaultparameter gibt's nur in C++, nicht in C.
"Funktioniert nicht" ist keine ausreichende Problembeschreibung.
- 10.02.2012 13:46 #7Reg.-Benutzer
- Reg.-Datum
- 10.02.2012
- Beiträge
- 4
Benutze minGW für Windows.
Also das erste Problem hab ich mitlerweile mit Hilfe eines kumpelz gelöst. Habe die fak.c-Datei in ein anderes Verzeichnis kopiert und dann nochmal neu compiliert.
Der Grund war:
Weiss nich so ganz genau was es heisst aber das programm funktioniert einwandfrei jez.naja, der gcc nimmt erstmal den code und baut eine .o datei daraus, das is nur der übersetzte programmcode in nem internen format
dann nimmt der linker vom gcc die .o datei und bindet die benötigten bibliotheken ein für, für printf, scanf aufruf z.b. und baut eine ausführbare datei daraus
wenn die .o da noch gelegen hat von einem früheren test, bei dem halt immer 12 raus kam
dann hat der linker die gesehen und direkt die exe draus gebaut ohne den code neu zu übersetzen
wenn ihr mir jez noch meine zweite frage beantworten könntet bitte?!
- 10.02.2012 13:53 #8
- 10.02.2012 14:01 #9Reg.-Benutzer
- Reg.-Datum
- 10.02.2012
- Beiträge
- 4
- 10.02.2012 19:17 #10Reg.-Benutzer
- Reg.-Datum
- 24.11.2010
- Beiträge
- 183
Bei seiner Umsetzung wäre das return im IF-Zweig völlig egal, er kommt nie dort an. Entsprechend würde es in beiden Fällen zu einer Compiler-Warnung kommen.
A: Das return fehlt.
B: Das return wird nie erreicht.
Um innerhalb des IF-Zweigs ein Return zu verwenden müsste er das Programm etwas anders gestalten.
Aktive Benutzer
Aktive Benutzer
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Ähnliche Themen
-
HTML-Fehler, Ich kann den Fehler nicht finden??
Von lauti im Forum WebdesignAntworten: 4Letzter Beitrag: 14.02.2011, 09:55 -
Bios Fehler, mein Fehler oder doch wieder MS?
Von bambam im Forum HardwareAntworten: 4Letzter Beitrag: 20.03.2008, 20:12 -
Fakultätsfunktion
Von Azubi22 im Forum JavaAntworten: 6Letzter Beitrag: 29.08.2003, 16:32 -
Fehler: Bei einem Auslagerungsvorgang wurde ein Fehler festgestellt!
Von Doham im Forum Windows BetriebssystemeAntworten: 4Letzter Beitrag: 24.04.2003, 11:49 -
Windows 98 Fehler: Explorer verursachte Fehler in Modul Shell32.dll
Von Hasimator im Forum Windows BetriebssystemeAntworten: 2Letzter Beitrag: 08.12.2001, 14:35
Die häufigsten Suchbegriffe für diese Seite:
Bisher noch keine Treffer von einer Suchmaschine

LinkBack URL
About LinkBacks
Zitieren