Frage von antikio, 72

C# Problem visual studio 2015?

Hi ich muss für die Schule ein Programm mit folgende Aufgabenstellung schreiben.

Schreiben Sie ein Programm, das das Minimum wählbar vieler eingegebener Zahlen liefert.

Den Teil mit den wählbar vielen Zahlen habe ich bereits erledigt meine Frage ist nun: Wie schaffe ich es eben dieses Minimum WÄHLBAR VIELER Zahlen auszudrücken, die größeren zahlen müssen nicht geordnet werden und sied völlig egal.

Danke im Vorraus

Antwort
von Willibergi, 33

Zwei Arten:

1) Lies ein, wie viele Zahlen der Benutzer eingeben möchte und erstelle ein Array von dieser Länge.

2) Erstelle eine Liste - sie ist dynamisch und hat keine feste Länge. Mit jeder Eingabe einer Zahl erweiterst du deine Liste.

Ich würde dir zu 2) raten.

Ich hoffe, ich konnte dir helfen; wenn du noch Fragen hast, kommentiere einfach.

LG Willibergi

Kommentar von VBHHerzog ,

ich würde vermuten das der fragesteller noch nichts mit arrays/listen/tupel zutun hat :)

Kommentar von antikio ,

da vermutest du richtig ^^

Antwort
von 55555555555555, 35

Mach eine Variable minValue oder so und setz sie auf positiv unendlich.

Dann lässt du alle Zahlen in einer Schleife durchlaufen und überprüfst, ob diese Zahl kleiner ist als die letzte Zahl.

Oder du sortierst einfach alle Zahlen, dann hast du auch die kleinste Zahl, das geht einfacher.

Kommentar von VBHHerzog ,

das hier ist eine sehr gute lösung.

das einfachste wäre, einfach mittels schleife die zahlen zu vergleichen, und die momentan neidrigste in der minValue Variable zu speichern.

falls ihr noch keine schleifen habt, kann man die zahlen auch mittels else if vergleichen, was aber nicht so schön wäre wie die schleuifenlösung :)

Kommentar von 55555555555555 ,

Naja wieso nicht in einer Liste speichern und sortieren? Geht viel schneller :) 

Kommentar von antikio ,

wir haben schleifen zwar schon gemacht aber wie würde das mit der Liste un dem sortieren funktionieren?

Kommentar von antikio ,

bzw wie würdest du die else if methode angehen

zb. so?

eingegebene zahl= a

zweite eingegebene zahl=b
und dann if (a < b)

Console.writeline("a");

else

Console.writeline("b");

so in etwa?

Kommentar von 55555555555555 ,

Fast.

Console.WriteLine(a)

Also ohne Anführungszeichen.

Aber probiers doch mal

Kommentar von antikio ,

Mein Problem ist zurzeit aber eigentlich dass ich nicht wirklich schreiben kann a<b ... usw weil ich nicht genau weiß wie ich unendlich viele Zahlen mit Variablen benennen soll. 

Hier mal mein Code bis jetzt:

namespace kleinste_Zahl
{
class Program
{
static void Main(string[] args)
{
int z = 0;
int a = 0;

Console.WriteLine("kleinste Zahl");
Console.Write("wie viele Zahlen brauchen Sie?");
a = Convert.ToInt32(Console.ReadLine());
for (int i = 1; i <= a; i++)
{
Console.Write("Zahl Nr. {0}:", i);
z = Convert.ToInt32(Console.ReadLine());
}

Console.ReadLine();
}
}
}

Kommentar von 55555555555555 ,

https://msdn.microsoft.com/de-de/library/system.double.positiveinfinity(v=vs.110).aspx

Du sollst nicht unendlich viele Zahlen nehmen, du sollst eine Variable nehmen, deren Wert unendlich ist. beispielsweise heißt diese Variable X

Du gehst jede Zahl durch und wenn diese Zahl kleiner ist als X, dann überschreibst du X mit dieser Zahl...

Kommentar von antikio ,

ok danke

Kommentar von 55555555555555 ,

Verstanden?

Kommentar von antikio ,

Verstanden auf jeden fall das Problem ist jetzt mehr das Schreiben des Programms^^

Kommentar von 55555555555555 ,

Kannst ja mal zwischendurch hier was posten vom Code

Antwort
von Gastnr007, 42

minimaleZahl = unendlich;
für alle deine Zahlen: wenn sie kleiner ist als die minimale Zahl, ist die minimale Zahl die aktuell durchgegangene

Keine passende Antwort gefunden?

Fragen Sie die Community