Пропускаю первый элемент в цикле, не могу понять как правильно это решить
public static List<int> gradingStudents(List<int> grades){
List<int> finaGrades = new List<int>(grades);
for(int i = 0; i < finaGrades.Count; i++){
if(finaGrades[i] % 5 != 0 ){
finaGrades[i] += 1;
i = 0;
}
}

Ответы (1 шт):
Первый элемент вы проскакиваете, потому что в начале каждого цикла срабатывает i++. Да и вообще я не понимаю, зачем вам каждый раз возвращаться к нулевому элементу, ведь вы его уже округлили до того, возможно. Зачем с 1000-го элемента опять возвращаться к нулевому? Зачем с миллионого возвращаться к нулевому? Округлили элемент - идёте дальше. Возвращаться не нужно. Само округление можно сделать без цикла, просто посчитав, сколько нужно добавить для того, чтобы делилось на 5. И тогда цикл ломать не нужно:
List<int> finaGrades = new List<int>(grades);
for(int i = 0; i < finaGrades.Count; i++){
if(finaGrades[i] % 5 != 0 ){
finaGrades[i] += 5 - finaGrades[i] % 5;
}
}
P.S. Исправил показ картинки в вопросе. Что-то я не понимаю - откуда берутся 67 и 33, что-то я не понимаю вообще тогда эту задачу. Приложите условие задачи к вопросу.