-
        

Ergebnis 1 bis 6 von 6

Thema: Wie progamm von neuem starten lassen

  1. #1

    Wie progamm von neuem starten lassen

    Anzeige

    Hallo,
    ich soll ein programm für das studium programmieren dass mir wenn ich einen betrag eingebe die möglichst kleine anzahl an Geldscheinen ausgibt die möglich ist ( 50 , 20 10 5) und das ganz dann wiederholt bis man null eingibt und somit beendet .
    Hier ist mein Quellcode ich schaffe die aufteilung . Nur mein problem ist dass ich jetzt wenn ich einen wert eingebe komischer weise wieder aufgefordert werde den wert einzugeben ohne die Anzeige.

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    int main(void)
    {
    int B, A50, A20, A10, A5;
    do
    /*Einlesefunktion*/
    {
    printf("Geben Sie einen Betrag ein :");
    scanf("%d",&B);
    }
    while ( B > 0);
    /*Ausgabefunktion*/
    {
    A50 = B / 50;
    printf(" Anzahl 50er : %d\n ",A50);
    A20 = ( B%50 ) / 20;
    printf(" Anzahl 20er : %d\n",A20);
    A10 = (B%50%20) /10;
    printf(" Anzahl 10er : %d\n",A10);
    A5 = (B%50%20%10) / 5;
    printf("Anzahl 5er:%d\n",A5);
    }
    {
    return(0);
    }
    }
    danke schon im vorraus

  2. #2
    Erfahrener Benutzer Roboter-Spezialist Avatar von -schumi-
    Registriert seit
    30.12.2009
    Ort
    Wasserburg am Inn / Bayern
    Alter
    23
    Beiträge
    449
    So hast du es ja auch dem Computer angeschafft:
    Code:
    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    int main(void)
    {
        int B, A50, A20, A10, A5;
        do
        /*Einlesefunktion*/
        {
             printf("Geben Sie einen Betrag ein :");
             scanf("%d",&B);
        }
        while ( B > 0);           // Solange der eingegebene Betrag größer 0 ist, soll die Eingabe wiederholt werden (springt zum Befehl nach "do")
        
        /*Ausgabefunktion*/
        {
            A50 = B / 50;
            printf(" Anzahl 50er : %d\n ",A50);
            A20 = ( B%50 ) / 20;
            printf(" Anzahl 20er : %d\n",A20);
            A10 = (B%50%20) /10;
            printf(" Anzahl 10er : %d\n",A10);
            A5 = (B%50%20%10) / 5;
            printf("Anzahl 5er:%d\n",A5);
        }
    
        {
           return(0);
        }
    }
    Änder das mal in
    Code:
    while( B <= 0 );
    Und wenn du den Code nicht als Kommentar einfügst, sondern als Code
    Code:
    {CODE} code {/CODE}
    (die {} durch [] ersetzen, oder alternativ den Code-Button (das Schweinegatter) am oberen Fensterrand drücken)
    kann mans auch besser lesen

  3. #3
    danke shcon mal für ide hilfe aber das problem ist immernoch vorhanden. Weil er dann zwar es ausgibt wie er soll aber mir nicht anbietet nochmal eine eingabe zu machen sondern nur beenden indem ich enter drücke . Jedoch soll er die ausgabe machen und dann mir anbieten nochmals einen anderen wert einzugeben solange bis ich 0 eingebe

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von BMS
    Registriert seit
    21.06.2006
    Ort
    TT,KA
    Alter
    26
    Beiträge
    1.192
    Hallo,
    das musst du etwas anders verschachteln, möglich wäre z.B.
    Code:
    while(1)
    {
        //hier die Eingabe
        ...
    
        if(B<=0){break;}    //verlässt die Schleife falls B<=0 war
        else
        {
            //hier Auftrennung in Scheine
            ...
        }
    }
    Grüße, Bernhard

  5. #5
    Erfahrener Benutzer Roboter-Spezialist Avatar von -schumi-
    Registriert seit
    30.12.2009
    Ort
    Wasserburg am Inn / Bayern
    Alter
    23
    Beiträge
    449
    oder:
    Code:
    B = 1;
    while(B)
    {
             // Eingabe und Ausgabe
    }
    return 0;
    Wenn du dann 0 eingibst, zeigt er dir immer noch die Scheine-Kombination, aber is ja ned so tragisch. Und wenn doch, kann man die auch mit einem if überspringen (Dann wäre die Lösung von BMS aber eigentlich eleganter, auch wenn sie komplizierter aussieht)

  6. #6
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.782
    Blog-Einträge
    8
    Hallo

    Man könnte es auch so machen:

    Code:
    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    
    int main(void)
    {
    	int B, A50, A20, A10, A5;
    	do
    	{
    		/*Einlesefunktion*/
    		printf("Geben Sie einen Betrag ein :");
    		scanf("%d",&B);
    
    		/*Ausgabefunktion*/
    		if(B > 0)
    		{
    			A50 = B / 50;
    			printf(" Anzahl 50er : %d\n ",A50);
    			A20 = ( B%50 ) / 20;
    			printf(" Anzahl 20er : %d\n",A20);
    			A10 = (B%50%20) /10;
    			printf(" Anzahl 10er : %d\n",A10);
    			A5 = (B%50%20%10) / 5;
    			printf("Anzahl 5er:%d\n",A5);
    		}
    	}while ( B > 0);
    
    	while(1); // Ein AVR-Programm darf nie beendet werden!
    	return(0);
    }
    (ungetestet)

    ich soll ein programm für das studium programmieren...
    Das Programm ist ja von dir, ich habe es nur etwas "umgeformt".

    Gruß

    mic

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

Ähnliche Themen

  1. progamm laden
    Von Giftzwerg im Forum Assembler-Programmierung
    Antworten: 8
    Letzter Beitrag: 20.07.2008, 13:29
  2. Wie starten?
    Von Psychomax im Forum C - Programmierung (GCC u.a.)
    Antworten: 18
    Letzter Beitrag: 09.06.2006, 11:28
  3. .exe von asm aus starten
    Von michiE im Forum Software, Algorithmen und KI
    Antworten: 10
    Letzter Beitrag: 01.04.2006, 00:13
  4. CC1 Basic- Nach Softwareupdate wie starten?
    Von LostInSpace im Forum Controller- und Roboterboards von Conrad.de
    Antworten: 1
    Letzter Beitrag: 05.09.2004, 15:48
  5. Serial Mouse im Progamm aus lesen
    Von NumberFive im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 2
    Letzter Beitrag: 04.04.2004, 02:09

Berechtigungen

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