Brauche Hilfe bei 2 kleinen Programmen



  • hm und wie lese ich mit scanf eine Zahl ein, die 2 NachKomma-Stellen hat?



  • Du liest eine Fließkommazahl (float oder double) ein. Wenn der User 100 Nachkommastellen eingibt, dann hat er halt 98 zuviel eingegeben.

    Rechne bei Geldbeträgen lieber ganzzahlig in Cent. Da gibt es keine Rundungsfehler.



  • Der Betrag muss aber in Euro eingegeben werden. Ich hab am Freitag meinen Lehrer gefragt, er hat gesagt es macht nix wenn ein Rundungsfehler drin ist.



  • Der Betrag muss aber in Euro eingegeben werden. Ich hab am Freitag meinen Lehrer gefragt, er hat gesagt es macht nix wenn ein Rundungsfehler drin ist.

    Edit: Sry, doppelpost...



  • Da widerspricht sich doch nicht.
    Eingabe als Fließkommazahl -> Umrechnung in Cent -> Berechnung.
    Bei der Ausgabe hast du eh nur ganzzahlige Werte.



  • PwN0GrPhy schrieb:

    Der Betrag muss aber in Euro eingegeben werden. Ich hab am Freitag meinen Lehrer gefragt, er hat gesagt es macht nix wenn ein Rundungsfehler drin ist.

    Auch Eurobeträge bestehen aus Zahlen. In deinem Beispiel wird auch ganz normal eine Fließkommazahl eingegeben.



  • aha.
    Ich hab jetzt die Eingabe, aber wie rechne ich es in Cent um?



  • Das ist Stoff der 2. Klasse.
    Wieviel Cent sind ein Euro?



  • drölf



  • Ich würde sagen, du lieferst hier mal konkreten Code ab und stellst dann konkrete Fragen dazu.



  • Dirk ich bin in der ersten oO Und wie man Euro in Cent umrechnet weiss ich auch(den betrag mal 100 rechnen).
    Und der Code, den ich bis jetzt habe sieht wie folgt aus (ja ich weiss, das is noch nicht mal annäherhnd fertig):

    #include <stdio.h>
    
    int main (void) {
    
    double b;
    e500
    e200
    e100
    e50
    e20
    e10
    e5
    
    c50
    c20
    c10
    c5
    c2
    c1
    
        printf("Betrag in Euro -->");
        scanf("%2lf", b);
        printf(" mal 500Euro")
        printf(" mal 200Euro")
        printf(" mal 100Euro")
        printf(" mal 50Euro")
        printf(" mal 20Euro")
        printf(" mal 10Euro")
        printf(" mal 5Euro")
        printf(" mal 50Cent")
        printf(" mal 20Cent")
        printf(" mal 10Cent")
        printf(" mal 5Cent")
        printf(" mal 2Cent")
        printf(" mal 1Cent")
    
    return 0;
    }
    


  • Toll.
    Es muss natürlich

    scanf("%lf", &b);
    

    heissen, auch würde ich mich als C Compiler weigern, die e* Zeilen zu übersetzen.



  • Warum muss es

    scanf("%lf", &b);
    

    heissen?
    Und wie würdest du die "e* Zeilen" machen?



  • Grundlagen, lies ein gutes C Buch.



  • Dafür hab ich momentan keine Zeit. Ausserdem habe ich "nur" ein Skriptum. Und warum frage ich wohl in einem Forum nach? Wohl nicht damit ich die Zeit von Leuten verschwenden kann, wegen Fragen die ich mir selber beantworten kann...

    Edit: Sry, ich hab den falschen Code gepostet. Das ist mein Code:

    #include <stdio.h>
    
    int main (void) {
    
    double b;
    char e500;
    char e200;
    char e100;
    char e50;
    char e20;
    char e10;
    char e5;
    
    char c50;
    char c20;
    char c10;
    char c5;
    char c2;
    char c1;
    
        printf("Betrag in Euro -->");
        scanf("%lf*100", b);
        printf(" mal 500Euro \n");
        printf(" mal 200Euro \n");
        printf(" mal 100Euro \n");
        printf(" mal 50Euro \n");
        printf(" mal 20Euro \n");
        printf(" mal 10Euro \n");
        printf(" mal 5Euro \n");
        printf(" mal 50Cent \n");
        printf(" mal 20Cent \n");
        printf(" mal 10Cent \n");
        printf(" mal 5Cent \n");
        printf(" mal 2Cent \n");
        printf(" mal 1Cent \n");
    
    return 0;
    }
    

    Und ja ich habe mittlerweile herausgefunden wie man in C multipliziert.



  • Mit diesen verbalen Aktivitäten wirst du hier kaum Leute bewegen können, dir zu antworten.
    Aber lasse dich mal überraschen, vielleicht findet sich ja doch noch jemand, der dir hier schnell mal kostenlos einen dir genehmen Überblick über die C Grundlagen gibt. Das wird schon deshalb schwierig werden, da du noch nicht mal die Syntax beherrscht.



  • PwN0GrPhy schrieb:

    Dafür hab ich momentan keine Zeit. Ausserdem habe ich "nur" ein Skriptum.

    Es gibt auch Bibliotheken, wo man Bücher ausleihen kann.

    PwN0GrPhy schrieb:

    Und warum frage ich wohl in einem Forum nach? Wohl nicht damit ich die Zeit von Leuten verschwenden kann, wegen Fragen die ich mir selber beantworten kann...

    Wenn du Pech hast, schreibt dir jemand das Programm.
    Programmieren lernt man durch programmieren. Und aus Fehlern lernt man durchaus.



  • Der Modulo-Operator könnte bei deiner Aufgabe übrigens ganz hilfreich sein.



  • @Dirk ist mir schon kla, nur gehe ich noch in die Schule und immer um ca. 17Uhr aus, und dann muss ich noch auf den Zug warten usw...
    Und wenn man nicht weiss wie man den Fehler behebt wird man auch nicht viel schlauer oder?

    Ausserdem wenn ich alles wüsste, müsste ich ja nicht nachfragen...



  • PwN0GrPhy schrieb:

    ... und dann muss ich noch auf den Zug warten usw...

    Prima Zeit ein Buch zu lesen.

    PwN0GrPhy schrieb:

    Und wenn man nicht weiss wie man den Fehler behebt wird man auch nicht viel schlauer oder?
    Ausserdem wenn ich alles wüsste, müsste ich ja nicht nachfragen...

    Das sieht so aus, als ob du noch nicht mal die einfachsten Programme (z.B. "Hallo Welt!", 10 * "Hallo Welt!", Ausgabe der ersten n Quadratzahlen) gemacht hast.
    Dann hättest du schon ein Grundgerüst.


Anmelden zum Antworten