-1
私は36011を入力すると2番目の出力が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