У меня есть 2D-массив студентов, у каждого по 4 оценки. Я нашел способ найти самую низкую оценку для каждого ученика, но теперь мне нужно удалить самую низкую и поместить оставшиеся оценки в новый массив.
Код, который у меня сейчас есть, повторяет значения для каждой оценки и неточно. Кроме того, если у учащегося две самые низкие оценки (например, 64,3 и 64,3), как мы можем удалить только одну?
double studentGrades[][] = {{100.0, 98.8, 78.9, 90.3},
{76.6, 90.8, 78.9, 78.3},
{78.7, 78.7, 91.2, 100.0},
{65.9, 94.2, 81.6, 93.6},
{78.7, 100.0, 93.2, 76.7}};
double temp=0;
double lowest=0;
double finalGrades[][] = new double[5][3];
for(int row = 0; row < studentGrades.length; row++) {
lowest = studentGrades[row][0];
for(int s = 0; s < studentGrades[0].length; s++) {
temp = studentGrades[row][s];
if(lowest > temp) {
lowest = temp;
}
else{
for(int m = 0; m < 3; m++) {
finalGrades[row][m] = studentGrades[row][s];
}
}
}
}
В идеале массив finalGrades должен быть установлен следующим образом: {100.0, 98.8, 90.3}, {90.8, 78.9, 78.3}, {78.7, 91.2, 100.0}, {94.2, 81.6, 93.6}, {78.7, 100.0, 93.2}