Benutzer mit den meisten Antworten
Eine kleine Frage :)

Frage
-
Hey Leute,
Ich habe versucht eine Zufallsgenerator für Lottozahlen zur Programmieren. Danach wolte ich eine Sortierverfahren mit den Zahlen durchführen 1.selectinsort 2. bubblesort. Dort habe ich Probleme vllt. könnt ihr mir dabei helfen.
Bei Case 0 wird gesagt: Der Name oder Bezeichner ist im Aktuellen Kontext nicht vorhanden !
dem entsprechend habe ich meine Variablen deklariert doch dann kommt eine andere fehlermeldung raus : Indizierung mit [] kann nicht auf einen Ausdruck vom Typ "double" angewendet werden. ???
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Lottozahlen { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { int[] box = new int[49]; for (int i = 0; i < 49; ++i) box[i] = i + 1; Random index1 = new Random(); int index = 0; for (int i = 0; i < 49; ++i) { index = index1.Next(1, 49); box[i] = index; } for (int i = 0; i < 6; ++i) { //Ausgabe unsortierten bereich if (i == 0) label9.Text = box[i].ToString(); if (i == 1) label10.Text = box[i].ToString(); if (i == 2) label11.Text = box[i].ToString(); if (i == 3) label12.Text = box[i].ToString(); if (i == 4) label13.Text = box[i].ToString(); if (i == 5) label14.Text = box[i].ToString(); } } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { switch (comboBox1.SelectedIndex) { case 0: for (int i = 0; i < 6; i++) { //Selectionsort for (int j = i + 1; j < 6; j++) { if (Lotto[i] > Lotto[j]) { zwischenspeicher = Lotto[i]; Lotto[i] = Lotto[j]; Lotto[j] = zwischenspeicher; } } } } } } }
}
}
}
}- Verschoben Ionut DumaModerator Mittwoch, 11. Dezember 2013 13:36 C# Frage
Antworten
-
Hallo,
der erste Fehler bei case entsteht, wie du richtig erkannt hast, durch eine fehlende Deklaration. Der 2. Fehler sagt nun aus, dass das Lotto-Objekt vom Typ double ist, du aber ein Array brauchst. Soweit ich sehen kann, benutzt du weiter oben immer das Objekt box. Darum würde ich das auch unten wieder verwenden. Zumindest die ersten 6 Elemente davon.Dabei fällt mir auf, das dein Code nicht der aller beste zu sein scheint, weil du das ganze Array mit 49 Elementen mit zufälligen Zahlen "fütterst". Nachfolgend mal ein kleines Beispiel zum erzeugen von solchen Zahlen-Arrays:
int[] box = new int[6]; int i = 0; Random rnd = new Random(); while (i < 6)//Solange laufen lassen, bis 6 Zahlen generiert wurden { int wert = rnd.Next(1, 49);//Zahl generieren if(!box.Contains (wert))//Zahl noch nicht enthalten { box[i] = wert;//Wert in Array aufnehmen ++i;//Zählervariable erhöhen } }
Nun zum sortieren. Du brauchst da nicht selbst schreiben. .NET liefert da alles mit:Array.Sort(box);
Durch die Sort-Methode wird das übergebene Array sortiert.
Koopakiller [kuːpakɪllɐ] (Tom Lambert)
Webseite |
Code Beispiele |
Facebook |
Twitter |
Snippets
C# ↔ VB.NET Konverter
Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.- Als Antwort vorgeschlagen Ionut DumaModerator Mittwoch, 11. Dezember 2013 13:36
- Als Antwort markiert Tom Lambert (Koopakiller)Moderator Donnerstag, 26. Dezember 2013 12:29
Alle Antworten
-
Hallo,
der erste Fehler bei case entsteht, wie du richtig erkannt hast, durch eine fehlende Deklaration. Der 2. Fehler sagt nun aus, dass das Lotto-Objekt vom Typ double ist, du aber ein Array brauchst. Soweit ich sehen kann, benutzt du weiter oben immer das Objekt box. Darum würde ich das auch unten wieder verwenden. Zumindest die ersten 6 Elemente davon.Dabei fällt mir auf, das dein Code nicht der aller beste zu sein scheint, weil du das ganze Array mit 49 Elementen mit zufälligen Zahlen "fütterst". Nachfolgend mal ein kleines Beispiel zum erzeugen von solchen Zahlen-Arrays:
int[] box = new int[6]; int i = 0; Random rnd = new Random(); while (i < 6)//Solange laufen lassen, bis 6 Zahlen generiert wurden { int wert = rnd.Next(1, 49);//Zahl generieren if(!box.Contains (wert))//Zahl noch nicht enthalten { box[i] = wert;//Wert in Array aufnehmen ++i;//Zählervariable erhöhen } }
Nun zum sortieren. Du brauchst da nicht selbst schreiben. .NET liefert da alles mit:Array.Sort(box);
Durch die Sort-Methode wird das übergebene Array sortiert.
Koopakiller [kuːpakɪllɐ] (Tom Lambert)
Webseite |
Code Beispiele |
Facebook |
Twitter |
Snippets
C# ↔ VB.NET Konverter
Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.- Als Antwort vorgeschlagen Ionut DumaModerator Mittwoch, 11. Dezember 2013 13:36
- Als Antwort markiert Tom Lambert (Koopakiller)Moderator Donnerstag, 26. Dezember 2013 12:29
-
Hallo SonyBlack1992,
Hat Dir die Antwort von Koopakiller geholfen? Wenn ja bitte markiere diese als Antwort.
Danke und Gruss,
Ionut
Ionut Duma, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip„Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.