-1
當我輸入36011時,第二個輸出的結果是36011而不是11,我確信編譯器設置是正確設置的。我真的不知道還有什麼要做,我必須使用long long long來完成這個任務,並且當我嘗試在我的代碼中使用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'作爲'秒',''分鐘'變量將保存'600'。因此,當「分鐘%= 60」時,「分鐘」將保持爲「0」。正因爲如此,你的'if(minutes> 0){...}'不會被執行,並且不會在'seconds'上執行模運算符。使用調試器非常容易找到,我強烈建議您學習如何操作 – Fureeish