using System; public class Person { public string Name; public int Alter; public Person(string name, int alter) { Name = name; Alter = alter; } } public class Auto { public string Name; public Person[] Personen; public Auto(string name, int seats) { Name = name; Personen = new Person[seats]; } // Gibt True zurück wenn die person einen platz gefunden hat, sonst false. public bool AddPerson(Person person) { for (int i = 0; i < Personen.Length; i++) { if (Personen[i] == null) { Personen[i] = person; return true; } } return false; } public void PrintPassengers() { for (int i = 0; i < Personen.Length; i++) { if (Personen[i] != null) { Console.WriteLine("Person " + Personen[i].Name + " sitzt auf Platz " + i + " und ist " + Personen[i].Alter + " alt."); } } } } public class Program { public static void Main() { Person[] personen = new Person[8]; personen[0] = new Person("Hans", 35); personen[1] = new Person("Hans2", 36); personen[2] = new Person("Hans3", 37); personen[3] = new Person("Hans44", 85); personen[4] = new Person("Hans255", 76); personen[5] = new Person("Hans366", 67); personen[6] = new Person("Hans777", 55); personen[7] = new Person("Hans2888", 43); Auto[] autos = new Auto[3]; autos[0] = new Auto("BMW", 4); autos[1] = new Auto("BMW2", 4); autos[2] = new Auto("BMW3", 4); Random random = new Random(); // Gehe jede person durch und füge sie zu einem zufälligen auto. foreach(Person person in personen) { while(true) { // Finde das zufällige auto. var randomIndex = (int)(random.NextDouble() * autos.Length); var auto = autos[randomIndex]; // Versuch die person zum auto hinzuzufügen. // Wenn platz dann "Break", ansonsten neue zufallszahl und nochmal probieren. if (auto.AddPerson(person)) break; } } foreach(Auto auto in autos) { Console.WriteLine("Auto " + auto.Name); auto.PrintPassengers(); Console.WriteLine(); } } }