2017-11-22 6 views
-1

Ich habe ein Programm, das den Benutzer anfordert, so viele Fließkommazahl einzugeben, wie sie möchten. Ich brauche diese Werte auf der Konsole und gelten folgende Rückgabewerte als auch die Ausgabe: Ich braucheWie man Zahlen ausgibt

  • Der Durchschnitt der Zahlen die Summe der Zahlen finden
  • Der niedrigste Wert Nummer
  • Die höchste Wert Zahl

ich kann nicht herausfinden, wie eine Ausgabe

hier zu bekommen, ist mein aktueller Code:

bool charactersFound = false; 
List<float> allNumbers = new List<float>(); 
while (charactersFound == false) 
{ 
    while (charactersFound == false) 
    { 
     String textEntered = Console.ReadLine(); 
     if (textEntered.ToUpperInvariant().Contains("STOP")) 
     { 
      charactersFound = true; 
     } 
     break; 
     allNumbers.Add(float.Parse(textEntered)); 
    } 
    float max = array.Max(); 
    float min = array.Min(); 
    float total = array.Sum(); 
} 

Wie kann ich dies auf der Konsole mit jedem der oben genannten Werte auf separaten Zeilen ausgeben?

+2

Und wo ist dein Problem? Wir machen deine Arbeit nicht. Es ist nicht so schwer einen Listendurchschnitt zu berechnen. Sie haben zumindest eine Idee *, wie Sie dies erreichen können. Außerdem scheint die Lösung zumindest für min, max und sum die Lösung zu sein. Was genau ist deine Frage? – HimBromBeere

+0

Und die Frage ist ?? – apomene

+0

Sie brauchen die äußere Schleife nicht. Sie können es auch zu einem 'while (true)' machen, weil Sie in der Mitte einen 'Break' haben. Der Durchschnitt ist "Summe" dividiert durch die Anzahl der Einträge. Vergessen Sie nicht zu überprüfen, ob Sie mindestens einen Eintrag haben, bevor Sie den Durchschnitt berechnen. – dasblinkenlight

Antwort

-1

Extract Methode (inputArray in Ihrem Fall), bitte nicht alles in einzelne Routine setzen:

private static float[] inputArray() { 
    List<float> list = new List<float>(); 

    while (true) { 
     string textEntered = Console.ReadLine(); 

     if (textEntered.ToUpperInvariant().Contains("STOP")) 
     return list.ToArray(); 

     if (float.TryParse(textEntered, out var item)) 
     list.Add(item); 
     else 
     Console.WriteLine($"\"{textEntered}\" is not a floating point value, ignored"); 
    } 
    } 

    ... 

    float[] array = inputArray(); 

    //TODO: you may want to check here if array is not empty 
    if (array.Length == 0) 
    Console.WriteLIne("The array is empty"); 
    else { 
    Console.WriteLine($"[{string.Join(", ", array)}]"); 
    Console.WriteLine($" Max = {array.Max()}"); 
    Console.WriteLine($" Min = {array.Min()}"); 
    Console.WriteLine($" Total = {array.Sum()}"); 
    } 
+0

Das ist erstaunlich Dmitry, danke – Harry