Entwickler-Ecke
Basistechnologien - minimalwert von arraywerten
PatX - Sa 14.02.09 17:20
Titel: minimalwert von arraywerten
Hallo liebe Forengemeinde,
bin neu hier in diesem Forum und bin noch in der Anfangsphase des Programmierens.
Ok, also folgendes Problem: Ich gebe in der Konsole bspw. 3 Zahlen ein die in einem Array landen, lasse die Zahlen dann addieren und ausgeben. Das habe ich auch so weit. Nur möchte ich jetzt anhand einer Methode die kleinste Zahl der eingegebenen Zahlen ausgeben lassen. Ich überleg schon ne ganze Weile, mir fehlt irgendwie der Ansatz. Hier der bisherige Code:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45:
| static void Main(string[] args) { int index; double summe, min; int anzahl = Allgemein.IntEingeben("Wieviel Zahlen wollen Sie? "); anzahl = anzahl + 1;
double[] zahlen = new double[anzahl];
index = 1; summe = 0;
while (index < anzahl) { zahlen[index] = Allgemein.DoubleEingeben("Bitte " + index + ". Zahl eingeben: "); summe = summe + zahlen[index];
index = index + 1;
} Console.WriteLine("Gesamtsumme: " + summe);
min = GetMin(zahlen); Console.WriteLine("Minalmwert: " + min);
Console.ReadLine();
}
private static double GetMin (double[]werte) { double min; return min;
} |
Ich denke mal dass ich nur durch eine Schleife die min-wert bekomme. Aber wie setze ich das um?
jaenicke - Sa 14.02.09 17:35
Hallo und :welcome: !
Weißt du denn was eine for-Schleife / foreach-Schleife ist?
Wenn ja, weißt du wie du damit alle Arrayeinträge durchgehen kannst?
Bei jedem Eintrag musst du dann schauen, ob dieser kleiner als das bisherige Minimum ist (das kann anfangs einfach der erste Eintrag sein). Wenn der aktuelle Eintrag kleiner ist, wird er das neue Minimum.
Am Ende gibst du diesen Wert dann zurück.
JüTho - Sa 14.02.09 19:22
Hallo und ebenfalls :welcome:
Ergänzende Hinweise: Eine List<T>, konkret
List<double> ist praktischer, weil dann die Anzahl der Einträge variabel sein kann. In C# gibt es kürzere Schreibweisen:
C#-Quelltext
1: 2: 3: 4:
| summe += zahlen[index]; index++; |
Falls Du bisher Convert.ToDouble verwendest, möchte ich Dich auf
double.TryParse hinweisen: Das sichert falsche Eingaben ab.
Erläuterungen findest Du natürlich in der
SDK-Doku/MSDN.
Gruß Jürgen
PatX - Sa 14.02.09 20:40
@jaenicke
Danke für die prompte Antwort.
Die for-Schleife ist mir etwas bekannt, habe Sie allerdings noch nicht angewandt. Hat eigentlich die selbe Funktion wie eine While-Schleife oder?
Die Frage ist eigentlich nur wie ich auf die Arrayeinträge zugreife. Denn es ist ja keine fest vergebene Anzahl von Arrays
sondern beliebig viele, also je nach dem wie hoch der Index ist...?
@JüTho
Danke für den Hinweis
Kha - Sa 14.02.09 21:13
PatX hat folgendes geschrieben : |
Die Frage ist eigentlich nur wie ich auf die Arrayeinträge zugreife. Denn es ist ja keine fest vergebene Anzahl von Arrays
sondern beliebig viele, also je nach dem wie hoch der Index ist...? |
Arrays gibt es insgesamt nur eines, oder :zwinker: ? Aber deine Frage ist etwas merkwürdig, da du sie in
Main eigentlich schon selbst beantwortest hast: Dort hast du eine "index"-Variable über die while-Schleife von 0 bis anzahl-1 laufen lassen. Nicht anders musst du es in GetMin tun, statt anzahl kannst du hier werte.Length benutzen. Und wie gesagt sind für so ein Hochzählen einer Variable eigentlich for-Schleifen gedacht.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!