-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