Bei .C: Zahlen in einzelne Ziffern zerlegen?



  • Hallo!
    Ich studiere und muss zwei Programme schreiben die das folgende können:

    Titel: Kraftstoffpreise
    Thema: Datentypen, Zahlensysteme

    Problem:
    Um die ständigen Preissteigerungen der Mineralölkonzerne deutlicher zu Tage treten zu
    lassen, hat sich der Verein „Billiges Öl für alle“ ein neues Ziel gesetzt. Er möchte im Internet
    ein Programm zur Verfügung stellen, das den aktuellen Preis zunächst in die gute
    alte DM umwandelt. Anschließend soll die Preissteigerung in Zukunft noch schneller gesehen
    werden können. Dazu hat man sich überlegt, die Preise in Zahlen im System zur
    Basis 6 darzustellen.
    Ihre Firma soll nun diesen Auftrag übernehmen und die nötigen Programme erstellen.

    *Aufgabe:
    Erstellen Sie ein Programm „Convert to six“, das zuerst den Preis pro Liter in Cent als
    ganze Zahl einliest, diesen dann in Pfennige umrechnet und rundet. Diesen gerundeten
    Wert soll das Programm dann als Zahl im System zur Basis 6 ausgeben.

    Erstellen Sie ein zweites Programm „Convert to ten“, das dieselbe Zahlenumrechnung
    umgekehrt durchführt, also zuerst den Preis in Pfennige/Basis 6 einliest, in eine Zahl zur
    Basis 10 umwandelt und in Cent umrechnet. Dieses Ergebnis soll dann ausgegeben werden.*

    Ich hab bereits den ersten teil fertig, allerdings muss man die zahlen am ende nicht alls 5441 sondern als 1445 ausgeben, wie geht das, dazu müsste ich mein ergebnis irgendwie ziffernweise aufspalten, was auch für den 2. Teil der Aufgabe sehr sinnvoll wäre.#

    #include <stdio.h>

    int main (void)
    {
    int preiseuro = 0;
    int preisdm = 0;
    int sechser = 0;

    printf ("Bitte geben sie den aktuellen Benzinpreis in Cent ein:\t");
    scanf ("%i", &preiseuro);
    preisdm = ((preiseuro * 1.95583) + 0.5);

    while (preisdm!=0)
    {
    sechser = preisdm%6;
    printf("%i", sechser);
    preisdm = preisdm/6;
    }
    return 0;
    }

    Vielen dank für eure hilfe.



  • Dieser Thread wurde von Moderator/in CMatt aus dem Forum C# und .NET in das Forum ANSI C verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • void calc(int i)
    {
       if(i != 0)
       {
          calc(i/6);
          printf("%i", i%6);
       }
    }
    
    int main (void)
    {
       int preiseuro = 0;
       int preisdm = 0;
       int sechser = 0;
    
       printf ("Bitte geben sie den aktuellen Benzinpreis in Cent ein:\t");
       scanf ("%i", &preiseuro);
       preisdm = ((preiseuro * 1.95583) + 0.5);
    
       calc(preisdm);  
    
       return (0);
    }
    

    Zeh Mau 👍

    Der Rest ist als gute Übung für dich anzusehen 🙂



  • oder so:

    void print_as_base (size_t v, int base)
    {
       size_t z;
       if (z = v/base)
           print_as_base (z, base);
       putchar ("0123456789abcdefghijklmnopqrstuvwxyz"[v%base]);
    }
    
    ...
    print_as_base (1249, 6);
    ...
    

    🙂



  • @ beide vielen dank.

    Aber könntet ihr mir noch mit ein paar worten erklären was ihr da mit der calc funktion gemacht habt, ich bin ein echter anfänger, muss das programm aber vorstellen und schlüssig erklären können 😃

    Wäre echt super nett.
    Vielen dank



  • ist kein grosses geheimnis
    --> http://en.wikipedia.org/wiki/Recursion_(computer_science)
    🙂
    #####################
    #####################
    #####################
    #####################
    #####################
    #####################
    #####################
    #####################
    #####################



  • kuhni2k schrieb:

    Anschließend soll die Preissteigerung in Zukunft noch schneller gesehen
    werden können. Dazu hat man sich überlegt, die Preise in Zahlen im System zur
    Basis 6 darzustellen.

    Wass soll denn der Schwachsinn? 😮



  • Das ist die Logik der TU-München Software-Engineering-Tutoren. Muss den Mist auch programmieren :p



  • wird zeit, dass mal jemand den zweiten Teil der Aufgabe programmiert:

    ich kanns nicht!
    wer hat des drauf?

    Titel: Kraftstoffpreise
    Thema: Datentypen, Zahlensysteme

    Problem:
    Um die ständigen Preissteigerungen der Mineralölkonzerne deutlicher zu Tage treten zu
    lassen, hat sich der Verein „Billiges Öl für alle“ ein neues Ziel gesetzt. Er möchte im Internet
    ein Programm zur Verfügung stellen, das den aktuellen Preis zunächst in die gute
    alte DM umwandelt. Anschließend soll die Preissteigerung in Zukunft noch schneller gesehen
    werden können. Dazu hat man sich überlegt, die Preise in Zahlen im System zur
    Basis 6 darzustellen.
    Ihre Firma soll nun diesen Auftrag übernehmen und die nötigen Programme erstellen.

    Aufgabe:

    Erstellen Sie ein zweites Programm „Convert to ten“, das dieselbe Zahlenumrechnung
    umgekehrt durchführt, also zuerst den Preis in Pfennige/Basis 6 einliest, in eine Zahl zur
    Basis 10 umwandelt und in Cent umrechnet. Dieses Ergebnis soll dann ausgegeben werden.

    mfg



  • nochecker schrieb:

    ich kanns nicht!
    wer hat des drauf?
    ...
    Er möchte im Internet
    ein Programm zur Verfügung stellen...

    ist doch kein problem:

    <html>
     <head>
      <title>Hausaufgabe</title>
     </head>
     <body>
     <?php 
     // ...
     // type your code here
     // ...
     ?> 
     </body>
    </html>
    

    🙂


Anmelden zum Antworten