C++ Sum Seconds problem
Здравейте! Задачата ми дава желаните в упражнението изходи, но в джъджа имам 90/100, като не ми показва къде е грешката (аутпута е наред). Условието е да въведем три стойности за секунди (до 50) , да ги сумираме и да изкараме всичко в минути и секунди, като пред секундите трябва да има 0 (ако числото за секунда е по-малко от 10) Някой може ли да помогне?
#include <iostream>
using namespace std;
int main()
{
int a, b, c;
cin >> a >> b >> c;
int sum = a + b + c;
if (sum < 59 && sum < 10) {
cout << "0" << ":0" << sum << endl;
}
else if (sum < 59) {
cout << "0" << ":" << sum << endl;
}
if (sum > 59 && sum < 119 && sum - 60 < 10) {
cout << "1" << ":0" << sum - 60 << endl;
}
else if (sum > 59 && sum < 119) {
cout << "1" << ":" << sum - 60 << endl;
}
if (sum > 119 && sum - 120 < 10) {
cout << "2" << ":0" << sum - 120 << endl;
}
else if (sum > 119) {
cout << "2" << ":" << sum - 120 << endl;
}
return 0;
}
Здравей,
Прегледах кода ти - имаш едно изпуснато равно на 20-ти ред (приблизително):
по-малко или равно на 119. Само това промених и кода ти мина за 100/100. Не съм сигурен дали някъде другаде няма граничен случай, за който просто не е написан тест, но с това равно кода работи и си вземаш точките.
Мисля, че и на другите гранични стойности би следвало да има проверка за равно.
Пример, ако времето е по-малко от 59 следва, че максималната стойност може да бъде до 58, за да се изпълни това условие, но по този начин пропускаш стойността 59. Аналогично и за другите гранични стойности.
Поздрави
Да, пробвах така нещата и вървят, благодаря :) Явно невниманието е най-големият неприятел :D Благодаря! :)