Bei der IHK Lösung sollte eigentlich nur die Bedingung für die for-Schleife nicht passen. Die muss man einfach ersetzen mit "i < einkommen_miete.Zeilenlaenge".
Meine lauffähige Lösung in Java:
double[][] einkommen_miete = new double[][]{
{4200, 1200},
{900,340},
{1800,600},
{3600,1100},
{2700,800},
{5900,1300},
};
int anzahlGruppen = 5;
int staffelung = 1000;
double[] prozente = new double[anzahlGruppen];
double[][] zuordnung = new double[anzahlGruppen][2];
for (int i = 0; i < einkommen_miete.length; i++)
{
double einkommen = einkommen_miete[i][0];
double miete = einkommen_miete[i][1];
int gruppe = (int)(einkommen / staffelung);
if (gruppe >= anzahlGruppen - 1)
{
gruppe = anzahlGruppen - 1;
}
zuordnung[gruppe][0] += einkommen;
zuordnung[gruppe][1] += miete;
}
for (int i = 0; i < zuordnung.length; i++)
{
prozente[i] = Math.round(100 / zuordnung[i][0] * zuordnung[i][1]);
}
Bei den letzten Prüfungen "musste" man immer eine Programmieraufgabe streichen, weil entweder zu lang und unklar oder zu kompliziert war. Vielleicht ist es diesmal auch wieder so.
Mein Tipp: Erst alle anderen machen und dann die 2 Programmieraufgaben anschauen. Die lauernden Probleme sind so schnell nicht zu erkennen und am Ende kann man die komplette restliche Zeit nutzen.