using System;

public class MyProgram
{
    public static void Main(string[] args)
    {

        // Die Variable betrag wird für den Betrag deklariert.
        int betrag;
        
        // Die Variable rest ist eine Hilfsvariable, die zum Rechnen innerhalb des Programms benötigt wird.
        int rest;
        
        Console.WriteLine("Geben Sie einen ganzzahligen Betrag in Cent an:");
        do
        {
            betrag = (int) inputValue();
            
            // Zuerst wird geprüft, ob der eingegebene Betrag kleiner oder gleich null ist, da sich negative Beträge nicht durch Münzen darstellen lassen.
            if (betrag <= 0)
            {
                
                // Wenn der Betrag kleiner gleich null ist, soll die Ausgabe 0 erfolgen, da es keine Münzen gibt, mit denen ein solcher Betrag dargestellt werden kann.
                Console.WriteLine("0");
            }
        }
        while (betrag <= 0);
        
        // Wenn der Betrag größer als null ist, wird der Variablen rest der Wert der Variable betrag zugewiesen. Und es wird mit der Variable rest gerechnet. Dadurch bleibt der ursprüngliche Betrag in der Variablen betrag erhalten und kann später wieder verwendet werden.
        rest = betrag;
        do
        {
            
            // Innerhalb der folgenden Fallunterscheidungen wird geprüft, ob der Wert der Variablen rest größer als der Wert der jeweiligen Münze ist. Im Fall, dass der Wert größer ist, wird zuerst der Wert der Münze ausgegeben und dann wird von der Variablen rest der Wert der Münze abgezogen. Solange der Wert der Variablen rest größer null ist, wird diese Schleife durchlaufen.
            // Dadurch, dass die Münzen bei den Fallunterscheidungen in absteigendem Wert angeordnet sind, ergibt sich ein möglichst kleine Anzahl an Münzen, die zur Darstellung des Betrags verwendet wird.
            if (rest >= 200)
            {
                Console.WriteLine("200");
                rest = rest - 200;
            }
            else
            {
                if (rest >= 100)
                {
                    Console.WriteLine("100");
                    rest = rest - 100;
                }
                else
                {
                    if (rest >= 50)
                    {
                        Console.WriteLine("50");
                        rest = rest - 50;
                    }
                    else
                    {
                        if (rest >= 20)
                        {
                            Console.WriteLine("20");
                            rest = rest - 20;
                        }
                        else
                        {
                            if (rest >= 10)
                            {
                                Console.WriteLine("10");
                                rest = rest - 10;
                            }
                            else
                            {
                                if (rest >= 5)
                                {
                                    Console.WriteLine("5");
                                    rest = rest - 5;
                                }
                                else
                                {
                                    if (rest >= 2)
                                    {
                                        Console.WriteLine("2");
                                        rest = rest - 2;
                                    }
                                    else
                                    {
                                        Console.WriteLine("1");
                                        rest = rest - 1;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        while (rest > 0);
    }
    
    // .NET kann nur einzelne Zeichen oder ganze Zeilen aus der  Konsole lesen. 
    // Die folgende Funktion löst das Problem.
    private static double inputValue()
    {
        double result;
        while (!double.TryParse(Console.ReadLine(), out result));
        return result;
    }
}
        
        
akzeptieren ablehen

Diese Website verwendet Cookies und Zählpixel, um Ihnen die bestmögliche Nutzung dieser Website zu ermöglichen.Learn more about cookies sehen Sie auch Datenschutz