-1
입력 할 때 36011 결과는 11 대신 36011 두 번째 출력 결과, 컴파일러 설정이 올바르게 설정되었는지 확인했습니다. 나는 진정으로 다른 것을 알지 못한다. 나는 long int를이 임무에 사용해야하고, 내 코드에서 mod 함수를 사용하려고하면 나를 위해 일하지 않는다.mod 함수가 제대로 작동하지 않습니다
#include <iostream>
using namespace std;
int main()
{
long long int seconds;
cin >> seconds;
long long int minutes = seconds/60;
long long int hours = minutes/60;
long long int days = hours/24;
cout << "Total seconds: " << seconds << endl;
if(seconds <= 0)
{
cout << "\nTotal seconds must be greater than zero";
}
else
{
if(days > 0)
{
hours %= 24;
cout << "\n" << days << " day(s)";
}
if(hours > 0)
{
minutes %= 60;
cout << "\n" << hours << " hour(s)";
}
if(minutes > 0)
{
seconds %= 60;
cout << "\n" << minutes << " minute(s)";
}
if(seconds > 0)
{
cout << "\n" << seconds << " second(s)";
}
}
cout << endl;
return 0;}
'36011'을'seconds'로 입력하면'minutes' 변수는'600'을 유지합니다. 따라서'minutes % = 60'을 할 때'minutes'는'0'의 값을 갖습니다. 그러므로'if (minutes> 0) {...}'는 실행되지 않고'seconds'에 대한 모듈러스 연산자를 수행하지 않습니다. 디버거를 사용하여 쉽게 발견 할 수 있으므로, 어떻게 그렇게하는지 배우는 것이 좋습니다. – Fureeish