myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Ungelesen 09.11.11, 18:26   #1
PwN0GrPhy
Newbie
 
Registriert seit: Oct 2011
Beiträge: 41
Bedankt: 6
PwN0GrPhy ist noch neu hier! | 0 Respekt Punkte
Standard [C]Brauche Hilfe bei nem kleinen Programm

Hi, ich würde etwas Hilfe für meine ProgrammierHausaufgabe brauchen. Hier ist die Angabe:
Code:
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
Hier ist der Code den ich schon selbst geschrieben habe:
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;
}
Wie ihr seht brauche ich noch Hilfe beim scanf und beim printf(man darf auch nur die beiden Befehle verwenden). Ich weiss leider nicht wie ich printf und scanf schreiben soll. Wäre echt sehr dankbar wenn mir da jemand helfen kann.

MfG

PS: Bitte NICHT den fertigen Code hier einfach so posten, sondern eine Erklärung(bei Bedarf aber mit einzelnen Codestücken). Danke
PwN0GrPhy ist offline   Mit Zitat antworten
Ungelesen 09.11.11, 19:06   #2
Your_Conscience
Hinter dir!
 
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
Your_Conscience ist noch neu hier! | 0 Respekt Punkte
Standard

Da du keinen Code, sondern nur ein Beispiel möchtest hier:
Code:
double zahl = 0;
printf("Bitte Zahl eingeben: ");
scanf("%lf", &zahl);
printf("Du hast folgende Zahl eingegeben: %lf\n", zahl);
Your_Conscience ist offline   Mit Zitat antworten
Ungelesen 09.11.11, 19:17   #3
PwN0GrPhy
Newbie
 
Registriert seit: Oct 2011
Beiträge: 41
Bedankt: 6
PwN0GrPhy ist noch neu hier! | 0 Respekt Punkte
Standard

Ich hab dein Beispiel jetzt leicht umgeändert(den Betrag auf Cent umgerechnet), aber wie mache ich jetzt die Ausgabe? Also wie viel 500er Scheine, 200er Scheine usw.?



BTW: Hier ist der Code:
Code:
#include <stdio.h>

int main(void) {

double zahl = 0;



    printf("Betrag in Euro --> ");
    scanf("%lf*100", &zahl);
    


return 0;

}
PwN0GrPhy ist offline   Mit Zitat antworten
Ungelesen 09.11.11, 19:21   #4
Your_Conscience
Hinter dir!
 
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
Your_Conscience ist noch neu hier! | 0 Respekt Punkte
Standard

Lass dir ersteinmal deine zahl ausgeben.
Wenn du "123,45" eingibst, wird in zahl trotsdem noch "123,45" stehen, du musst es also nach der Eingabe umrechnen (wenn ich mich jetzt nicht irre).

Hapert es an der Ausgabe oder am Algorithmus?
Wie man eine Zahl ausgibt habe ich oben ja schon gepostet.
Your_Conscience ist offline   Mit Zitat antworten
Ungelesen 09.11.11, 19:25   #5
PwN0GrPhy
Newbie
 
Registriert seit: Oct 2011
Beiträge: 41
Bedankt: 6
PwN0GrPhy ist noch neu hier! | 0 Respekt Punkte
Standard

Ich würd ma sagen es "hapert" an der Ausgabe und am Algorithmus. Ich hab keine Ahnung wie ich es ausrechnen lassen soll, wie viel man von welchem Wert braucht.
PwN0GrPhy ist offline   Mit Zitat antworten
Ungelesen 09.11.11, 19:39   #6
Your_Conscience
Hinter dir!
 
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
Your_Conscience ist noch neu hier! | 0 Respekt Punkte
Standard

Das habe ich mir schon gedacht

Also als erstes möchtest du ja den Betrag in Cent haben.
Code:
printf("Betrag in Euro --> "); 
scanf("%lf", &zahl);  
zahl *= 100;
Jetzt musst du abfragen, wieviele Geldscheine bzw. Münzen in diesen Betrag "passen".
Hier solltest du von dem 500€ runter nach 1Cent (in dieser Richtung gehen).

Abfrage für 500€
Code:
if (h = zahl / 50000 > 0) { 
printf("%d 500 Euro-Schein(e)\n", h);
zahl -= (h * 50000);
}
Das musst du jetzt noch für die anderen Beträge machen.
Wenn du meinen Code nicht verstehst oder nicht weiter kommst, frag einfach
Your_Conscience ist offline   Mit Zitat antworten
Ungelesen 09.11.11, 19:47   #7
PwN0GrPhy
Newbie
 
Registriert seit: Oct 2011
Beiträge: 41
Bedankt: 6
PwN0GrPhy ist noch neu hier! | 0 Respekt Punkte
Standard

"if"-Funktionen haben wir noch nicht gelernt, wird wohl auffallen wenn ich das dann im Code hätte, oder?^^
PwN0GrPhy ist offline   Mit Zitat antworten
Ungelesen 09.11.11, 19:53   #8
Thelvan
Erfahrenes Mitglied
 
Registriert seit: Jul 2010
Beiträge: 493
Bedankt: 236
Thelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt Punkte
Standard

Wie soll man das sonst lösen 0_o

Welche Befehle habt ihr denn sonst kennengelernt?

Das ganze kommt dem Rucksack problem nahe.

[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
Thelvan ist offline   Mit Zitat antworten
Ungelesen 09.11.11, 19:54   #9
Your_Conscience
Hinter dir!
 
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
Your_Conscience ist noch neu hier! | 0 Respekt Punkte
Standard

OK, das habe ich nicht gewusst.
Hier nochmal ohne if
Code:
h = zahl / 50000;
printf("%d 500 Euro-Schein(e)\n", h);
zahl -= (h * 50000);
Your_Conscience ist offline   Mit Zitat antworten
Ungelesen 09.11.11, 19:58   #10
PwN0GrPhy
Newbie
 
Registriert seit: Oct 2011
Beiträge: 41
Bedankt: 6
PwN0GrPhy ist noch neu hier! | 0 Respekt Punkte
Standard

Bis jetzt haben wir nur printf und scanf gemacht. Also jetzt auch mit Variablen und so^^ Aber ich kann mal kurz im Skriptum nachschauen um sicher zu gehn.


Edit: Sry hab den Post nicht gelesen.
Btw: Bis jetzt haben wir nur printf und scanf gemacht, als nächstes würde putchar und getchar kommen.
PwN0GrPhy ist offline   Mit Zitat antworten
Ungelesen 09.11.11, 20:01   #11
Thelvan
Erfahrenes Mitglied
 
Registriert seit: Jul 2010
Beiträge: 493
Bedankt: 236
Thelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt Punkte
Standard

Achso, Geldscheine die nicht benutzt werden, sollen trotzdem angezeigt werden okay.

Kannst dir ja mal if-Anweisungen gucken, ist nicht schwer zu verstehen, und noch eine Version damit machen, so dass nicht Scheine mit 0 angezeigt werden.
Thelvan ist offline   Mit Zitat antworten
Ungelesen 09.11.11, 20:05   #12
PwN0GrPhy
Newbie
 
Registriert seit: Oct 2011
Beiträge: 41
Bedankt: 6
PwN0GrPhy ist noch neu hier! | 0 Respekt Punkte
Standard

@Thelvan if-Befehle haben wir noch nicht gelernt. Also sollte ich es ja wohl auch nicht verwenden oder? O:
PwN0GrPhy ist offline   Mit Zitat antworten
Ungelesen 09.11.11, 20:06   #13
Your_Conscience
Hinter dir!
 
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
Your_Conscience ist noch neu hier! | 0 Respekt Punkte
Standard

Ist meine zuletzt gepostete Lösung jetzt eigentlich zulässig oder auch wieder nicht?
Your_Conscience ist offline   Mit Zitat antworten
Ungelesen 09.11.11, 20:11   #14
PwN0GrPhy
Newbie
 
Registriert seit: Oct 2011
Beiträge: 41
Bedankt: 6
PwN0GrPhy ist noch neu hier! | 0 Respekt Punkte
Standard

@Your_Consciene Dazu hab ich noch eine Frage: Muss ich das jetzt immer wieder einfügen und nur von "500 Euro Schein(e)" auf 200 Euro Schein(e) umschreiben? Also so:
Code:
 #include <stdio.h>

int main(void) {

double zahl = 0;



    printf("Betrag in Euro --> "); 
    scanf("%lf", &zahl);  
    zahl *= 100;
    
    h = zahl / 50000;
    printf("%d 500 Euro-Schein(e)\n", h);
    zahl -= (h * 50000);

h = zahl / 50000;
    printf("%d 200 Euro-Schein(e)\n", h);
    zahl -= (h * 50000);

h = zahl / 50000;
    printf("%d 100 Euro-Schein(e)\n", h);
    zahl -= (h * 50000);


return 0;

}
Oder muss noch was umgeändert werden?
PwN0GrPhy ist offline   Mit Zitat antworten
Ungelesen 09.11.11, 20:22   #15
Your_Conscience
Hinter dir!
 
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
Your_Conscience ist noch neu hier! | 0 Respekt Punkte
Standard

Nein, du musst noch die Beträge ändern
Code:
h = zahl / 50000;            //50000 Cent = 500€
printf("%d 500 Euro-Schein(e)\n", h);
zahl -= (h * 50000);

h = zahl / 20000;           //20000 Cent = 200€
printf("%d 200 Euro-Schein(e)\n", h);
zahl -= (h * 20000);

h = zahl / 10000;           //10000 Cent = 100€
printf("%d 100 Euro-Schein(e)\n", h);
zahl -= (h * 10000);
Your_Conscience ist offline   Mit Zitat antworten
Ungelesen 09.11.11, 20:38   #16
Your_Conscience
Hinter dir!
 
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
Your_Conscience ist noch neu hier! | 0 Respekt Punkte
Standard

Mir fällt gerade auf, dass in dem Beispiel in deinem Startposting garkeine 2€ und 1€ existieren.
Hat das was zu bedeuten oder wurden die einfach nur vergessen?
Your_Conscience ist offline   Mit Zitat antworten
Ungelesen 09.11.11, 20:40   #17
PwN0GrPhy
Newbie
 
Registriert seit: Oct 2011
Beiträge: 41
Bedankt: 6
PwN0GrPhy ist noch neu hier! | 0 Respekt Punkte
Standard

K, also ich hab das jetzt mal eben so gemacht wie du es gesagt hast.
Hier ist der Code
Code:
#include <stdio.h>

int main(void) {

double zahl = 0;



    printf("Betrag in Euro --> ");
    scanf("%lf", &zahl);
    zahl *= 100;

    h = zahl / 50000;
    printf("%d 500 Euro-Schein(e)\n", h);
    zahl -= (h * 50000);

    h = zahl / 20000;
    printf("%d 200 Euro-Schein(e)\n", h);
    zahl -= (h * 20000);

    h = zahl / 10000;
    printf("%d 100 Euro-Schein(e)\n", h);
    zahl -= (h * 10000);

    h = zahl / 5000;
    printf("%d 50 Euro-Schein(e)\n", h);
    zahl -= (h * 5000);


    h = zahl / 2000;
    printf("%d 20 Euro-Schein(e)\n", h);
    zahl -= (h * 2000);

    h = zahl / 1000;
    printf("%d 10 Euro-Schein(e)\n", h);
    zahl -= (h * 1000);

    h = zahl / 500;
    printf("%d 5 Euro-Schein(e)\n", h);
    zahl -= (h * 500);

    h = zahl / 200;
    printf("%d 2 Euro-Muenze(n)\n", h);
    zahl -= (h * 200);

    h = zahl / 100;
    printf("%d 1 Euro-Muenze(n)\n", h);
    zahl -= (h * 100);


    h = zahl / 50;
    printf("%d 50 Cent-Muenze(n)\n", h);
    zahl -= (h * 50);

    h = zahl / 20;
    printf("%d 20 Cent-Muenze(n)\n", h);
    zahl -= (h * 20);


    h = zahl / 10;
    printf("%d 10 Cent-Muenze(n)\n", h);
    zahl -= (h * 10);

    h = zahl / 5;
    printf("%d 5 Cent-Muenze(n)\n", h);
    zahl -= (h * 5);

    h = zahl / 2;
    printf("%d 2 Cent-Muenze(n)\n", h);
    zahl -= (h * 2);

    h = zahl / 1;
    printf("%d 1 Cent-Muenze(n)\n", h);
    zahl -= (h * 1);



return 0;

}

Jetzt zeigt mir mein Codeblocks aber 3Errors an, alle in Zeile 3( h = zahl / 50000
Das sind die Errors:
1.) 'h' undeclared (first use in this function)
2.) Each undeclared identifiert is reported only once
3.) for each funtion it appears in
PwN0GrPhy ist offline   Mit Zitat antworten
Ungelesen 09.11.11, 20:41   #18
PwN0GrPhy
Newbie
 
Registriert seit: Oct 2011
Beiträge: 41
Bedankt: 6
PwN0GrPhy ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von Your_Conscience Beitrag anzeigen
Mir fällt gerade auf, dass in dem Beispiel in deinem Startposting garkeine 2€ und 1€ existieren.
Hat das was zu bedeuten oder wurden die einfach nur vergessen?
Wurden wohl einfach nur vergessen xD Unsere Lehrer sind nicht grad soooo mega klug, was das angeht^^
PwN0GrPhy ist offline   Mit Zitat antworten
Ungelesen 09.11.11, 20:45   #19
Your_Conscience
Hinter dir!
 
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
Your_Conscience ist noch neu hier! | 0 Respekt Punkte
Standard

Die Variable h ist bei dir noch nicht deklariert.
Du musst oben nach "double zahl = 0;" noch "int h = 0;" schreiben. (es ist wichtig, dass du hier int und nicht double verwendest)

Ansonsten sieht dein Code eigentlich richtig aus.
Your_Conscience ist offline   Mit Zitat antworten
Ungelesen 09.11.11, 20:51   #20
PwN0GrPhy
Newbie
 
Registriert seit: Oct 2011
Beiträge: 41
Bedankt: 6
PwN0GrPhy ist noch neu hier! | 0 Respekt Punkte
Standard

hui es geht Danke =)
PwN0GrPhy ist offline   Mit Zitat antworten
Ungelesen 10.11.11, 07:14   #21
PwN0GrPhy
Newbie
 
Registriert seit: Oct 2011
Beiträge: 41
Bedankt: 6
PwN0GrPhy ist noch neu hier! | 0 Respekt Punkte
Standard

Ich hab da noch ne Frage, ein Kumpel von mir braucht auch noch die Aufgabe, und er weiss nicht wies geht, ich natürlich auch nicht.
Er weiss nicht wie das gehn soll und auch nicht wie er es Programmieren soll.
Hier ist mal die Angabe:
Code:
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.
Ich wäre echt sehr dankbar wenn ihr ihn helfen könntet. =)

MfG

PS: Diesmal dürft ihr den fertigen Code schon posten^^
Natürlich auch nur mit printf und scanf Anweisungen.
PwN0GrPhy ist offline   Mit Zitat antworten
Ungelesen 10.11.11, 14:06   #22
Your_Conscience
Hinter dir!
 
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
Your_Conscience ist noch neu hier! | 0 Respekt Punkte
Standard

Lösung:

Ich denke, der Code sollte eigentlich leicht verständlich sein.
Außerdem solltet ihr beide mal in eure Unterlagen gucken bzw. mal im Internet nach Ansätzen suchen.
Ich glaube nicht, dass ihr Aufgaben aufbekommt, die ihr eigentlich noch garnicht lösen könnt.

Und bitte macht euch das nächste mal auch selbst Gedanken darüber und postet hier dann eure bisherigen Lösungsansätze.
Your_Conscience ist offline   Mit Zitat antworten
Ungelesen 10.11.11, 14:11   #23
PwN0GrPhy
Newbie
 
Registriert seit: Oct 2011
Beiträge: 41
Bedankt: 6
PwN0GrPhy ist noch neu hier! | 0 Respekt Punkte
Standard

Werden wa Danke

Edit: Ich habs jetzt mal in Codeblocks reinkopiert. Und ich weiss jetzt nicht was "system("PAUSE");" bedeutet. Das haben wir auch noch nicht gelernt, wenn ich mich recht erinnere.
PwN0GrPhy ist offline   Mit Zitat antworten
Ungelesen 10.11.11, 14:41   #24
Your_Conscience
Hinter dir!
 
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
Your_Conscience ist noch neu hier! | 0 Respekt Punkte
Standard

"system("PAUSE");" macht sozusagen eine Pause, wenn man Enter gedrückt hat, geht es weiter.
Ich bau das immer mit rein, damit sich das Konsolenfenster nicht gleich schließt.
Du kannst die Zeile einfach rauslöschen - das hat keine Auswirkungen auf das Programm.
Your_Conscience ist offline   Mit Zitat antworten
Ungelesen 10.11.11, 15:01   #25
PwN0GrPhy
Newbie
 
Registriert seit: Oct 2011
Beiträge: 41
Bedankt: 6
PwN0GrPhy ist noch neu hier! | 0 Respekt Punkte
Standard

Okay danke =)
Btw du hast in zeile 10 ein '%' vergessen, es muss doppelt sein sonst wird es nicht ausgegeben
Eines der Dinge die ich mir ausm unterricht gemerkt hab
PwN0GrPhy ist offline   Mit Zitat antworten
Ungelesen 10.11.11, 15:06   #26
Your_Conscience
Hinter dir!
 
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
Your_Conscience ist noch neu hier! | 0 Respekt Punkte
Standard

Zeile 10 ist bei mir "scanf("%lf", &zinssatz);" und so wie ich das sehe, fehlt da nichts?!
Your_Conscience ist offline   Mit Zitat antworten
Ungelesen 10.11.11, 15:07   #27
PwN0GrPhy
Newbie
 
Registriert seit: Oct 2011
Beiträge: 41
Bedankt: 6
PwN0GrPhy ist noch neu hier! | 0 Respekt Punkte
Standard

Zeile 10 ist bei mir "printf("Zinssatz (in %%) --> ");" oO
PwN0GrPhy ist offline   Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:22 Uhr.


Sitemap

().