Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Problem c++

  1. #1
    Stiller Leser
    Registriert seit
    13.09.2007
    Beiträge
    3

    Standard Problem c++

    Hab bei einem meiner Programm ein Problem wenn ich es starte und ich die Werte eingebe, dann spuckt es entweder 0 oder 1.2 e^123455oder so ähnlich aus was mach ich falsch hier der code

    Code:
    int main(int argc, char *argv[])
    {
      double k=0;     //Kontostand
      double p=0;     //Prozentsatz
      int j=0;       //angegebene Jahre
      int count=1;     //vergangene Jahre
      printf("Dies ist ein Programm zum Berechnen des eigenen Kontostandes in einigen Jahren.");    //Kopfzeile
      printf("Wenn sie Kommazahlen angeben, passen sie auf,\n  dass sie in der folgenden Form sind:\n       xxx.yy (durch Punkt getrennt und mit 2 stellen hinter dem Komma)");
      printf("\n\nGeben sie bitte ihr Gesamtvermoegen eines Kontos an.\n");    //Kontostand angeben
      scanf("%e",&k);
      printf("%e",&k);
      printf("\n\nGeben sie bitte den Prozentsatz an Zinsen an den sie im Jahr bekommen.\n");      //Prozentsatz angeben
      scanf("%f", &p);
      printf("\n\nGeben sie bitte an fuer wie viele Jahre sie das Ergebnis moechten\n(wenn sie 4 eingeben erhalten Sie das Ergebnis fuer die naechsten 4 Jahre).\n");
      scanf("%d", &j);
      while(count<=j)
      {
          ++count;
          k=k*(1+(p/100));    //Rechnung
          printf("\n\n   -->    ERGEBNIS:    <--\n\nNach einem weiteren Jahr haben sie %10.2f\n\n\n-----------------------\n\n",&k);
      }  
    
      system("PAUSE");	
      return 0;
    }
    Danke für alle Antworten im voraus
    glookie1[/code]

  2. #2
    I'm in ur VM. Avatar von l0dsb
    Registriert seit
    23.07.2007
    Beiträge
    1.038

    Standard

    Der Fehler steckt vermutlich hier:

    Code:
    printf("\n\n   -->    ERGEBNIS:    <--\n\nNach einem weiteren Jahr haben sie %10.2f\n\n\n-----------------------\n\n",&k);
    wird zu

    Code:
    printf("\n\n   -->    ERGEBNIS:    <--\n\nNach einem weiteren Jahr haben sie %10.2f\n\n\n-----------------------\n\n",k);
    &k ist die Adresse der Variable k, k lediglich ihr Inhalt, den du bei printf ja auslesen willst.
    I can haz RCE?

  3. #3
    W32.Lovgate
    Registriert seit
    01.07.2007
    Beiträge
    354

    Standard

    ausserdem soltest du int oder sowas nehmen, denn Gleitpunkttypen sind für Kontostände nicht unbedingt geeignet...

  4. #4
    Stiller Leser
    Registriert seit
    13.09.2007
    Beiträge
    3

    Standard

    danke gleich ma ausprobieren obs geht

    aber wenn ich int nehme kann ich doch keine kommazahlen nehmen...oder??

    edit1:funktioniert einwandfrei hab anstelle von double noch float genommen und siehe da... funktioniert

  5. #5
    W32.Lovgate
    Registriert seit
    01.07.2007
    Beiträge
    354

    Standard

    wenn ich int nehme kann ich doch keine kommazahlen nehmen...oder??
    doch, das kannst du indirekt, indem du in cent speicherst.

    Hier ein Beispiel

    Code:
    int kontostand = 1254            //12€ 54 Cent
    
    printf("%d.%d", kontostand%100, kontostand-(kontostand%100))
    wenn ich mich irre, sagt es mir...

  6. #6
    <3 catz Avatar von NEAVORC
    Registriert seit
    04.09.2007
    Beiträge
    322

    Standard

    man kann doch für Dezimalzahlen auch "float" nehmen oder?
    (╯°□°)╯︵ ┻━┻
    Back2Pwn
    PM for new ICQ

  7. #7
    Michelangelo Virus
    Registriert seit
    14.06.2007
    Beiträge
    282

    Standard

    float == gleitkommazahl
    Write the code correctly and it will compile

  8. #8
    W32.Lovgate
    Registriert seit
    01.07.2007
    Beiträge
    354

    Standard

    man kann doch für Dezimalzahlen auch "float" nehmen oder?
    Eigentlich nicht, da schwankt die Genauigkeit übelst...

  9. #9
    W32.FunLove
    Registriert seit
    05.08.2007
    Beiträge
    137

    Standard

    Kann man nicht cout<<"text"<<endl; nehmen statt printf?
    printf kommt aus C wen ich mich nicht irre

  10. #10

    Standard

    Natürlich kannst du das nehmen.
    Warum nicht?
    Danke.
    .::free-hack::.

Seite 1 von 2 12 LetzteLetzte

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •