Hilfe bei 2kleinen Programmen(geschrieben in C)

  • Hi^^ Ich muss meien Programmieraufgabe noch machen(alles in C geschrieben), ich hab auch schon 4Nummer/Beispiele aber mir fehlen noch bei 2Nummern die printf's und die scanf's(und die dazu gehörenden Variablen). Hier sind die Angaben:
    Jedoch kapier ich nicht wie ich die printf's und die scanf's machen soll.
    Hier ist die Angabe:
    Nummer 3. (Geldbetrag)
    Einzugeben ist ein Geldbetrag in EUR. Anschließend ist auszugeben, wie viele Geldscheine
    bzw. M¨unzen h¨ochstens notwendig sind, um den Betrag auszuzahlen.
    Beispiel:
    Betrag in EUR -> 845.77
    1 mal 500 EUR
    1 mal 200 EUR
    1 mal 100 EUR
    0 mal 50 EUR
    2 mal 20 EUR
    0 mal 10 EUR
    1 mal 5 EUR
    1 mal 50 Cent
    1 mal 20 Cent
    0 mal 10 Cent
    1 mal 5 Cent
    1 mal 2 Cent
    0 mal 1 Cent

    -------------------------------------------------------------------------------------------------------

    Nummer 4. (Zinsen)
    Einzugeben sind Kapital, Zinssatz (in Prozent) und Laufzeit (in Jahren, Monaten und
    Tagen). Das Programm soll die einfachen bankm¨aßigen Zinsen und das verzinste Gesamtkapital
    berechnen (jedes Monat ist mit 30 Tagen und jedes volle Jahr mit 360
    Tagen zu rechnen).
    Beispiel:
    Kapital (in Euro) --> 1234.56
    Zinssatz (in %) --> 4.5
    Verzinsungsdauer (im Format j-m-d) --> 3-7-12
    ---------------------------------------------------
    Es ergeben sich Zinsen von 200.92 Euro.
    Wert des einfach verzinsten Gesamtkapitals: 1435.48 Euro.


    Es muss in C geschrieben sein, und darf nur printf's und scanf's enthalten.
    Ich wäre wirklich sehr sehr dankbar.

    MfG

    • Offizieller Beitrag

    Hi,
    die Idee hinter 3. ist folgende:
    Lese erst die Eingabe ein, gehe anschließend nacheinander die einzelnen Geldscheine/Münzen von groß nach klein durch und füge soviele wie möglich hinzu und gebe sie aus. Um Schleifen wirst du nicht drumrum kommen...

    Aufgabe 4 ist so ähnlich lösbar.
    LG nif7

  • Also, ich weiss nicht wie ich die printf Anweisungen und die scanf anweisungen schreiben soll. Ich kann ja mal den Code posten den ich bis jetzt hab.

    #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;
    }

    Bei den Printf-Anweisungen sieht man ja, dass da noch was fehlt. Und ich weiss auch nicht wie ich es ausrechnen soll welche Euro-Scheine,Münzen usw. gebraucht werden. Hoffe es ist verständlich erklärt

    mfG

  • Mal ein wenig Logik im besten PseudoCode :)

    int betrag
    int anzahl
    int arrayEuro = [500, 200, ... , 0.05, 0.02, 0.01]

    foreach(arrayEuro as teiler) {
    anzahl = Abrunden(betrag / teiler)
    betrag = betrag - anzahl * teiler

    print anzahl + ' mal ' + teiler + '€'

    }

    Einmal editiert, zuletzt von Sobber (7. November 2011 um 19:22)

  • printf und scanf verlangen als ersten Parameter einen Formatstring.

    Code
    int a = 50;
    printf("a=%n", 50);
    Code
    int a;
    scanf("%n", &a);

    Beachte, dass scanf einen Pointer erwartet, dein Beispiel würde also unweigerlich zu einem Speicherfehler führen.

    Fehler, Ausdruck, Erklärung nötig
    Keine Korrekturen per Privatnachricht.