Programmieren?

2 Antworten

du veränderst number in der Schleife und nutzt es als Grenzwert... das kommt nicht gut

und... was du im for tust ergibt für mich auch keinen Sinn... entweder while(number--) oder for, dann aber mit i = 0 und i < number und i++ (oder i = 1 und i <= number, wenn du das lieber magst, weil du sonst drin mit (i+1) multiplizieren müsstest)

und ausserdem gibst du bei jedem Durchgang etwas aus und nicht nur am Ende

            for (int i = number; i < number; i--)
            {
               number = number * i;
               Console.WriteLine($"{number}");
            }

Das wird doch eine Endlosschleife bzw. bricht erst ab, wenn number einen overflow hat, da "i<number" immer die erhöhte number verwendet. Dann ist i am Anfang number, also ist number = number * i = number * number. Fange damit mit number -1 an. Dann die Kombination "i < etwas" und i-- ist schon gewagt.

Console.Write(number+"!=");
int ergebnis = number;
Console.Write(ergebnis);
for(int i = number - 1; i > 1; --i){
    ergebnis = ergebnis * i;
    Console.Write("*");
    Console.Write(i);
}
Console.Write("="+ergebnis);