Hilfe bei Fehlersuche



  • Hi bin blutiger anfänger und hab grad ein programm geschrieben finde aber den fehler nicht

    #include <stdlib.h>

    int main(int argc, char *argv[])
    {
    int stueck;
    float preis;

    printf("Geben Sie bitte ihre Stueckzahl ein\n");
    scanf ("%d\n", &stueck);

    if (stueck >= 10 && stueck<50)
    preis = stueck*((1.2/100)*97);
    printf ("Der Preis betraegt %f\n", preis);

    else if (stueck >=50 && stueck<100)
    preis = stueck*((1.2/100)*95);
    printf ("Der Preis betraegt %f\n", preis);

    else (stueck>=100)
    preis = stueck* ((1.2/100)*92);
    printf ("Der Preis betraegt %f\n", preis);

    system("PAUSE");
    return 0;
    }



  • if (stueck >= 10 && stueck<50)
    {
        preis = stueck*((1.2/100)*97);
        printf ("Der Preis betraegt %f\n", preis);
    }
    else if (stueck >=50 && stueck<100)
    {
        preis = stueck*((1.2/100)*95);
        printf ("Der Preis betraegt %f\n", preis);
    }
    else
    {
        preis = stueck* ((1.2/100)*92);
        printf ("Der Preis betraegt %f\n", preis); 
    }
    


  • ok jetzt bekomm ich zwar keine fehlermeldung mehr habs jetzt noch mal um einen fall erweitert. Aber es macht immer noch nicht dass was es machen soll.

    Ein Händler gibt auf den Verkauf von DVD – Rohlingen bei Abnahme höherer Stückzahlen Rabatt. Ein Rohling kostet 1,20 Euro. Bei Verkauf ab 10 Stück gibt er 3% Rabatt, ab 50 Stück 5% und ab 100 Stück 8%.
    Schreiben Sie ein Programm, das die gewünschte Stückzahl einliest und anschließend den Verkaufspreis ausgibt.

    #include <stdio.h>
    #include <stdlib.h>

    int main(int argc, char *argv[])
    {
    int stueck;
    float preis=0.0;

    printf("Geben Sie bitte ihre Stueckzahl ein\n");
    scanf ("%d\n", &stueck);

    if (stueck<10)
    {
    preis = stueck1.2;
    printf ("Der Preis betraegt %f\n");
    }
    else if (stueck >= 10 && stueck<50)
    {
    preis = stueck
    ((1.2/100)97);
    printf ("Der Preis betraegt %f\n", preis);
    }
    else if (stueck >=50 && stueck<100)
    {
    preis = stueck
    ((1.2/100)95);
    printf ("Der Preis betraegt %f\n", preis);
    }
    else
    {
    preis = stueck
    ((1.2/100)*92);
    printf ("%f\n", preis);
    }

    system("PAUSE");
    return 0;
    }



  • Bitte benutze cpp-Tags, wie MiP es dir vorgemacht hat! Das will sonst kaum einer lesen...



  • Aber es macht immer noch nicht dass was es machen soll

    Was passiert denn?
    Übrigens kannst du die Ausgabe auch einmalig nach den if-Blöcken machen.



  • Wie funktioniert dass?



  • Der Fehler liegt darin, dass du bei scnaf nach dem %d noch ein '\n' hast, nimm es raus...

    und ausserdem:

    if (stueck<10) 
    { 
        preis = stueck*1.2; 
        printf ("Der Preis betraegt %f\n"); 
    }
    

    schreib das um in

    if (stueck<10) 
    { 
        preis = stueck*1.2; 
        printf ("Der Preis betraegt %f\n", preis); 
    }
    


  • druno schrieb:

    Wie funktioniert dass?

    Umschließe deinen Code mit [cpp ] und [/cpp ] (ohne die Leerzeichen).



  • Man gibt die stückzahl ein und dann macht es nix mehr



  • jetzt funktionierts

    vielen dank



  • @08mmarte

    wo ist der unterschied bei dem was ich umschreiben soll?



  • ups habs schon gesehen dass hatte ich schon kurz nachdem ich reingestellt hab geändert



  • Ahh okey...
    probier das mal:
    schreib anstelle von %f, %.2f...so gibt es dir nur zwei Nachkommastellen aus...(hab noch nie 0.001 Euro gesehen) 😃



  • 08mmarte schrieb:

    Ahh okey...
    probier das mal:
    schreib anstelle von %f, %.2f...so gibt es dir nur zwei Nachkommastellen aus...(hab noch nie 0.001 Euro gesehen) 😃

    Ich schon! Z.B. in der Telekommunikationsbranche, wo mit Kleinstbeträgen gerechnet und erst auf der Rechnung gerundet wird. Trotzdem ein guter Tipp. 😉



  • ich habe eigentlich gemeint, dass niemand 0.001 Euro mit sich rummschlept...scho 1 cent ist eigentlich nutzlos...


Anmelden zum Antworten