Programing Basic with Java - проблем със задача сумиране на секунди
Това е кода :
public class SumSeconds { public static void main(String[] args) { Scanner console = new Scanner(System.in); Integer Seconds1 = Integer.parseInt(console.nextLine()); Integer Seconds2 = Integer.parseInt(console.nextLine()); Integer Seconds3 = Integer.parseInt(console.nextLine()); Integer Seconds = Seconds1 + Seconds2 + Seconds3; Integer Minutes = 0; if (Seconds<60){ System.out.println(Minutes + ":" + Seconds); } if (Seconds>59){ Minutes++;Seconds = Seconds-60; }else if (Seconds>119){ Minutes++;Seconds = Seconds-120; }if (Seconds<10){ System.out.println(Minutes + ":" + "0" + Seconds); } } }
Изчислява времената на състезатели въведени от потребителя и пресмята сумарното им време във формата на минути и секунди. Не мога да разбера къде греша... сумира при вход 14,12,10, както и при 22, 7, 34. Не пресмята при вход 35, 45, 44, както и 50,50,49.
Благодаря!
Опитах със смяната, но явно греша някъде и...Това с допълване на число с 0 е супер полезно :)
Колега беше изтъкнал и една друга грешка, но коментарът е изчезнал. При секунди над 120 ще трябва да се добавят две единици към минутата, а не една. "++" добавя само една единица. При случая с над 119 секунди ще трябва да напишеш "minutes = minutes + 2" или "minutes += 2". Бих препоръчал да ползваш малка буква за първа буква на имената на променливите. Лекторите така казват, защото е добра практика и е прието по-скоро имената на класове да започват с главна буква. Добра практика е и когато се напише " ; " да се започне на нов ред.
Леко пренаписах кода ти. Минава в judge на 100% https://pastebin.com/JCrBu5Kd
Ето и една по-различна версия, която използва някои операции, които ще ти трябват за по-нататъшни задачки. И тази версия има 100 точки в judge https://pastebin.com/GC8KDgNg
По-различната версия използва целочислено деление и намиране на модул (операция %). Набързо обяснени са тук: https://pastebin.com/aSuBTfYR
Много Благодаря!
Изключително полезно!!!!