misc
-
Gesamte Inhalte
4 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Beiträge von misc
-
-
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:
naja, der gcc nimmt erstmal den code und baut eine .o datei daraus, das is nur der übersetzte programmcode in nem internen formatdann 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
Weiss nich so ganz genau was es heisst aber das programm funktioniert einwandfrei jez.
wenn ihr mir jez noch meine zweite frage beantworten könntet bitte?!
-
Also bei eingabe 1 kommt 1 raus. bei allen anderen getesteten eingaben ist das ergebnis 12.
wenn ich die zeile
int fak(int n, int erg){
durchint fak(int n, int erg=1){
ersetze bekomme ich bei der compilierung die fehlermeldung:
fak.c:23: error: expected ';', ',' or ')' before '=' token -
#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; }
Wiso kommt hier immer 12 raus? Und gibs ne Möglichkeit einen Standardwert für die Übergabeparameter festzulegen? also ich meine wie in java:public int fak(int n, int[B] [U]erg=1[/U][/B]){...}
fehler in fakultätsfunktion
in C und C++
Geschrieben
ok damit wäre auch das geklärt danke leute.