Übung nächste woche dienstag wichtig!!
-
- Beiträge: 194
- Registriert: 11.10.2006, 14:53
Übung nächste woche dienstag wichtig!!
für alle die sich schon einige stunden mit ihrem programm plagen und sich fragen wieso das double euerer myexp fkt immer den wert 0 herauswirft, gibts jetzt abhilfe.
der dank geht natürlich an unsere tollen proffesoren die uns nicht gesagt haben das man ein double nicht mit %d aufruft sondern mit %lf (für longfloat). es is freitag der tag war sonnig und dank dieser meisterleistung hab ich so viel zeit ver********* das ich wiedermal net raus konnte DANKE ....
also nicht vergessen bei ausgabe der werte sprich printf("%lf anstatt das vermutete %d, und alles sollt passen falls es noch probs gibt ich könnte die programme online stellen aber sie sind nicht wirklich schwer
schönes we
ciao
der dank geht natürlich an unsere tollen proffesoren die uns nicht gesagt haben das man ein double nicht mit %d aufruft sondern mit %lf (für longfloat). es is freitag der tag war sonnig und dank dieser meisterleistung hab ich so viel zeit ver********* das ich wiedermal net raus konnte DANKE ....
also nicht vergessen bei ausgabe der werte sprich printf("%lf anstatt das vermutete %d, und alles sollt passen falls es noch probs gibt ich könnte die programme online stellen aber sie sind nicht wirklich schwer
schönes we
ciao
WO IS DA GAL?!?!
© Wiesinger
© Wiesinger
- ibi
- Dr. h.c.
- Beiträge: 443
- Registriert: 12.10.2006, 20:34
- Wohnort: Kagran / Donaustadt
Was, das wurde euch tatsächlich nicht gesagt?
Hm, sowas ist natürlich ärgerlich ...
Wurde euch beigebracht, wie man die Manpages aufruft?
Wenn man nämlich in der Shell (Konsole, Bash, ...) "man 3 printf" aufruft ist genau erklärt, was man bei printf wie verwendet.
Ich empfehle übrigens, den Compiler mit den Parametern -Wall und -pedantic aufzurufen, also so: "gcc -pedantic -Wall -o Ausgabedatei Quelltext".
Dann liefert der Compiler eine Warnung, wenn man %d bei Double-Variablen verwendet.
Hm, sowas ist natürlich ärgerlich ...
Wurde euch beigebracht, wie man die Manpages aufruft?
Wenn man nämlich in der Shell (Konsole, Bash, ...) "man 3 printf" aufruft ist genau erklärt, was man bei printf wie verwendet.
Ich empfehle übrigens, den Compiler mit den Parametern -Wall und -pedantic aufzurufen, also so: "gcc -pedantic -Wall -o Ausgabedatei Quelltext".
Dann liefert der Compiler eine Warnung, wenn man %d bei Double-Variablen verwendet.
-
- Beiträge: 194
- Registriert: 11.10.2006, 14:53
ja es ist war das ich hätte im manual nachschauen können
aber wie gesagt als anfänger habe ich den fehler in meiner Funktion gesucht und nicht im printf und da verging halt viel zeit weil ich alles versucht habe...
nächstes mal werde ich mir das sicher vorknöpfen
aber danke für den typ mit dem -wall
-pendantic kenne ich net
aber wie gesagt als anfänger habe ich den fehler in meiner Funktion gesucht und nicht im printf und da verging halt viel zeit weil ich alles versucht habe...
nächstes mal werde ich mir das sicher vorknöpfen
aber danke für den typ mit dem -wall
-pendantic kenne ich net
WO IS DA GAL?!?!
© Wiesinger
© Wiesinger
- ibi
- Dr. h.c.
- Beiträge: 443
- Registriert: 12.10.2006, 20:34
- Wohnort: Kagran / Donaustadt
Es gibt long int und short int.Gregor hat geschrieben:Ich schließe mich gleich ärgernd an.. Was für einen Sinn macht long wenn das genausoviele byte hat wie int?
Int ist auf manchen Rechnern long int, auf anderen aber short int. Das ist betriebssystemabhängig.
Aber meistens brauchst den Unterschied eh nicht, einfach int verwenden und fertig.
- Gregor
- Beiträge: 69
- Registriert: 09.10.2006, 16:32
- ibi
- Dr. h.c.
- Beiträge: 443
- Registriert: 12.10.2006, 20:34
- Wohnort: Kagran / Donaustadt
Genauigkeit erhöhen? Mit einem Integer-Typ?
Du meinst wohl eher, daß Du größere Zahlen haben wolltest.
Meinst Du sowas?
Exakte Werte bekommst Du bei großen Zahlen allerdings nicht mehr.
Du meinst wohl eher, daß Du größere Zahlen haben wolltest.
Meinst Du sowas?
Code: Alles auswählen
double fak(int j)
{
int i;
double result = 1.0;
for(i = 1; i <= j; i++) result *= (double) i;
return result;
}
- ibi
- Dr. h.c.
- Beiträge: 443
- Registriert: 12.10.2006, 20:34
- Wohnort: Kagran / Donaustadt
Das hilft aber nur bei double vs float und nicht bei größeren Ganzzahlen.
Int wird nie ungenau, da kann Dir höchstens passieren, daß die Variable überläuft.
Dann halt so:
Int wird nie ungenau, da kann Dir höchstens passieren, daß die Variable überläuft.
Dann halt so:
Code: Alles auswählen
double exp(double base, int ex)
{
int i;
double result = 1;
for(i = 0; i < ex; i++) result *= base;
return result;
}
- Gregor
- Beiträge: 69
- Registriert: 09.10.2006, 16:32
-
- Beiträge: 194
- Registriert: 11.10.2006, 14:53
-
- Beiträge: 89
- Registriert: 06.11.2006, 00:16
leute, hats schon irgendwer für dienstag das prog? plag mich gerade herum, habs an und für sich geschrieben, nur einige probleme. irgendwie akzeptiert er das struct nicht, das an die Read-Funktion übergeben wird und zum anderen liest er die werte ohne jegliche fehlermeldung einfach nicht aus...
könnte bitte wer einen funktionierenden source posten, damit ich meine fehler ausbessern kann. wär ganz nett.
könnte bitte wer einen funktionierenden source posten, damit ich meine fehler ausbessern kann. wär ganz nett.