Seite 1 von 1

C programmieren?

Verfasst: Freitag 8. Oktober 2010, 16:01
von Janaldo
Hey,
gibts hier zufällig jemand der sich ein bisschen mit C Programmierung auskennt?

Ich soll einen Benzinkostenrechner programmieren (Verbrauch, Kosten/Liter und Strecke eingeben -> Kosten ausgeben).
Eigentlich ja nicht allzu schwer, aber mein Programm liegt immer um ca. Faktor 1000 daneben :?
Ich vermute das hat irgendwas mit dem "double" zu tun, wenn ich für alles Integer nehm klappts...

Code: Alles auswählen

#include <stdio.h>

int main(void)

{
    double verbrauch;
    int strecke;
    double preis;
    double kosten;

    printf("Benzinkostenrechner");
    printf("\n\nGeben Sie bitte den Benzinverbrauch Ihres Autos in Liter/100km ein:\n");
    scanf("%lf",&verbrauch);
    printf("\nGeben Sie bitte den Preis pro Liter Benzin ein:\n");
    scanf("%lf",&preis);
    printf("\nGeben Sie bitte die gefahrene Stecke in km ein:\n");
    scanf("%i",&strecke);

    kosten = 0.01 * verbrauch * strecke * preis;

    printf("\n\nDie Kosten betragen %.2lf Euro.",kosten);

    return 0;
}

Re: C programmieren?

Verfasst: Samstag 9. Oktober 2010, 17:25
von Janaldo
Niemand?

Ich hab das Problem inzwischen weiter eingegrenzt:

Code: Alles auswählen

#include <stdio.h>
int main (void)
{
	float x;
	scanf("%f",&x);
	printf("%f",x);
	return 0;
}
Gibt mir, wenn ich zB 5 eingebe nicht wieder 5 aus, sondern 0,5.
Ich glaub langsam da ist irgendwas im Compiler kaputt...

Re: C programmieren?

Verfasst: Samstag 9. Oktober 2010, 18:40
von Dash
Keine Ahnung , kann kein C.
Aber ich kann , wenn du willst, am Montag mal einen Kollegen fragen?!

Re: C programmieren?

Verfasst: Samstag 9. Oktober 2010, 19:18
von Janaldo
Oh ja, das wär nett!

Re: C programmieren?

Verfasst: Sonntag 10. Oktober 2010, 16:28
von oliver.keck
Habs gerad mal getestet sowohl mit gcc und g++ funktioniert bei beiden Compilern. Ich gebe 5 ein und es wird 5.00000 angezeigt. Welchen Kompiler verwendest du? Ich glaube ich hatte das Problem kürzlich auch mal mit MS VC Kompiler.
Ich würde dir auch dringend empfehlen deine Variablen zu initialisieren als nicht nur

float x;

sondern

float x = 0;

dies ist wichtig da zum einen dein Kompiler nicht zwingend sicherstellt das ein variable auf 0 initialisiert wird und zum anderen gerade der VC Kompiler eine zuweisung einer float variable braucht um ggf. librarys zu laden.
Wenn das alles nix Hilft würd ich mal googeln speziell auf deinen Kompiler bezogen, denn wenn es wirklich ein Kompiler (oder eher Library) Problem ist müsste es sicherlich auch noch bei anderen leuten auftreten.

Gruß
Olli

Re: C programmieren?

Verfasst: Sonntag 10. Oktober 2010, 19:31
von Dash
Dash hat geschrieben:Aber ich kann , wenn du willst, am Montag mal einen Kollegen fragen?!
Hey, Olli, super, hast dich ja gleich selbst hier angemeldet.
@Janaldo: hilft dir das weiter?

Re: C programmieren?

Verfasst: Sonntag 10. Oktober 2010, 22:24
von Janaldo
Danke für die Antwort!
Ich hab den LCC. Bei nem Kommilitonen tritt genau das gleiche Problem auf... ich werds in der nächsten Vorlesung mal ansprechen. Aber schonmal gut zu wissen, dass mein Code passt.

Könnte es ne Rolle spielen, dass der Compiler über VMware läuft?
oliver.keck hat geschrieben:Ich würde dir auch dringend empfehlen deine Variablen zu initialisieren als nicht nur

float x;

sondern

float x = 0;
Stimmt, das hat der Prof auch gesagt. Aber zumindest hier änderts nichts.

Re: C programmieren?

Verfasst: Sonntag 10. Oktober 2010, 22:37
von oliver.keck
Also VMware kann rein technisch gesehen keinen einfluss darauf haben, da
Code wie dieser von der eigentlichen Virtualisierung nur inderekt betroffen ist (Ein/Ausgabe).
Angesichts des doch eher exotischen Compilers würd ich aber auch mal darauf tippen,
dass es an der mitgelieferten STDIO library liegt.
Als alternative empfielt sich da dann natürlich die Windows variante des gcc (oder mingw)
oder gleich das kostenlose Visual C++ Express. Wobei ersterer auch noch eher zu den exoton gehört.

So dann ... Happy Coding