Programmierung C# Zufallszahlen generieren
Guten Abend allerseits:),
Ich habe ein ziemlich großes Problem mit dem erstellen von Zufallszahlen in C#.:( Ein Feld vom Typ int mit 4 Elementen, soll mit Zufallszahlen zwischen 1 und 10 gefüllt werden. Nach langem rumprobieren, ist dann dies zustande gekommen,
**using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int[] feld = new int[4]; int i; int Zufallszahl;
Random zg = new Random();
feld[i] = zg.Next(1, 10);
while (i < 4)
{
feld[i] = Zufallszahl(1, 10);
i = i + 1;
}
Console.WriteLine(Zufallszahl);
}
}
} **
..aber so richtig funktionieren tut es natürlich nicht:( Wisst Ihr was ich falsch gemacht habe?
Würde mich über Antworten wahnsinnig freuen:) Thx
ComputerJulius
4 Antworten
static void Main(string[] args)
{
int[] feld = new int[4];
Random zg = new Random();
for (int i = 0; i < feld.Length; i++)
feld[i] = zg.Next(1, 10);
foreach (int i in feld)
Console.WriteLine(i);
Console.ReadKey();
}
Das Füllen kannst du so bequem über eine For-Schleife machen, die Ausgabe mit einer Foreach-Schleife und am Ende ein Console.ReadKey(), damit das Fenster nicht sofort geschlossen wird.
Ohh sorry hier noch mal der Code;S
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int[] feld = new int[4];
int i;
int Zufallszahl;
Random zg = new Random();
feld[i] = zg.Next(1, 10);
while (i < 4)
{
feld[i] = Zufallszahl(1, 10);
i = i + 1;
}
Console.WriteLine(Zufallszahl);
}
}
}
Wenn Du mit random eine relativ große Zufallszahl bekommst, Du aber nur 10 Werte von 1 bis 10 benötigst, so dividiere die Zufallszahl durch die Anzahl der Werte. Der Divisionsrest + 1 ist dann die gewünschte Zufallszahl.
Anmerkung: Echte Zufallszahlen lassen sich ohne äußeren Einfluss mit einem Computer nicht herstellen. Als äußeren Einfluss kann man einen Tastendruck verwenden, der bei jeder Betätigung den Timer liest und daraus die Zufallszahl erzeugt. Für das Programm ist damit nicht vorhersehbar, wann genau der Tastendruck erfolgt. Für viele Anwendungen reicht eine dem Zufall angenäherte Form aus.
Wofür ist die Variable "Zufallszahl"?
So wie ich das sehe müsste die Zeile
feld[i] = Zufallszahl(1, 10);
in folgende geändert werden.
feld[i] = zg.Next(1, 10);
Übrigens wäre eine aussagekräftigere Beschreibung angemessen. "Funktioniert nicht" mag zwar stimmen, hilft aber niemanden den Fehler zu finden. Immerhin weiß niemand, was du programmiert hast, wirklich das ist, was du dir dabei gedacht hast.