lolli - Di 03.05.11 14:45
Titel: Abzählen Algorithmus
Hallöchen,
ich komme bei folgender Problemstellung nicht weiter.
Ermitteln des Siegers beim Abzählen
Methode bekommt Informationen Kinderanzahl sowie die Anzahl der Silben des Abzählreims übergeben.
Ergebnis ist eine Zahl, welches Kind gewinnt (
Abzählen beginnt mit dem ersten Kind und wird dann nach dem „Rausfliegen“ mit dem nachfolgenden Kind fortgesetzt
so richtig klappt das aber nich, weil ich nich weis was ich alles beachten muss, bzw wie ich die bereits auf false gesetzten array-werte richtig mit einbinde und wie ich die arrays immer wieder durchlafen lasse
hier mal mein versuch.
für hilfe wäre ich dankbar
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:
| static void Main(string[] args) { Console.WriteLine("Uebung 07 - Abzaehlalgorithmus\n"); Console.WriteLine(abzaehlen(12, 9)); Console.WriteLine("\n Beenden..."); Console.ReadKey(); } static int kinderAnzahlTrue(Boolean[] anzahlKinder) { int anzahlTrue = 0; for (int t = 0; t < anzahlKinder.Length; t++) { if (anzahlKinder[t]) anzahlTrue = anzahlTrue + 1; } return anzahlTrue; }
static int abzaehlen(int anzahl, int Reimsilben) { Boolean[] anzahlKinder = new Boolean[anzahl]; int k = 0; for (int m = 0; m < anzahlKinder.Length; m++) { anzahlKinder[m] = true; }
while (kinderAnzahlTrue(anzahlKinder) > 1) { for (int i = 1; i < Reimsilben; i++) { if (k + 1 < anzahlKinder.Length) k++; else k = 0; } anzahlKinder[k] = false; } return 0; } |
gruß lolli
Moderiert von
Martok: Quote- durch C#-Tags ersetzt
lolli - Di 03.05.11 17:20
so jetzt gibt er mir zumindest nen ergebnis aus. abe rich weis nich wo mein fehler liegt.
er setzt jetzt auch alle falsch, aber schon beim 2ten durchlauf setzt eins zu früh falsch -.-
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: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58:
| static void Main(string[] args) { Console.WriteLine("Uebung 07 - Abzaehlalgorithmus\n"); Console.WriteLine(abzaehlen(12, 9)); Console.WriteLine("\n Beenden..."); Console.ReadKey(); }
static int kinderAnzahlTrue(Boolean[] anzahlKinder) { int anzahlTrue = 0; for (int t = 0; t < anzahlKinder.Length; t++) { if (anzahlKinder[t]) anzahlTrue = anzahlTrue + 1; } return anzahlTrue; }
static int abzaehlen(int anzahl, int Reimsilben) { Boolean[] anzahlKinder = new Boolean[anzahl]; int k = 0; int sieger = 0; for (int m = 0; m < anzahlKinder.Length; m++) { anzahlKinder[m] = true; }
while (kinderAnzahlTrue(anzahlKinder) > 1) { for (int i = 1; i < Reimsilben; i++) { if (k+1 < anzahlKinder.Length) k++; else k = 0;
while (anzahlKinder[k] == false) { if (k +1< anzahlKinder.Length) k++; else k = 0; } } anzahlKinder[k] = false;
} for (int x = 0; x < anzahlKinder.Length; x++) { if (anzahlKinder[x]) sieger= x; } return sieger; } |