C++ 为什么我将分钟转换为天、小时和分钟的公式返回的结果不正确?如何修复?

C++ 为什么我将分钟转换为天、小时和分钟的公式返回的结果不正确?如何修复?,c++,integer,integer-division,C++,Integer,Integer Division,我是编程新手,无法理解为什么我的程序返回错误的答案。我们应该将给定的分钟数(在本例中为1540分钟)转换为天、小时和分钟。正确的输出应该是1天1小时20分钟,但我得到了40分钟,而其他一切都是正确的。这也不会发生在所有输入的分钟数上,对于一些问题,它还会返回正确的答案,这让我更加困惑。问题很明显是我使用的公式,但我不明白为什么它返回40分钟而不是给定示例中的20分钟。除了公式和需要转换的分钟数,我遗漏了所有内容 int totalTime = 1540; daysWatched = total

我是编程新手,无法理解为什么我的程序返回错误的答案。我们应该将给定的分钟数(在本例中为1540分钟)转换为天、小时和分钟。正确的输出应该是1天1小时20分钟,但我得到了40分钟,而其他一切都是正确的。这也不会发生在所有输入的分钟数上,对于一些问题,它还会返回正确的答案,这让我更加困惑。问题很明显是我使用的公式,但我不明白为什么它返回40分钟而不是给定示例中的20分钟。除了公式和需要转换的分钟数,我遗漏了所有内容

int totalTime = 1540;

daysWatched = totalTime / minutesInDay; //1440 minutes in a day
totalTime %= minutesInDay;
hoursWatched = totalTime / minutesInHour; //60 minutes in an hour
totalTime %= minutesInHour;
minutesWatched = totalTime;

正确的输出是1天1小时40分钟。首先,当你除以1540/1440时,你会得到1,然后当你使用1540%1440时,你会得到100,即60分钟=1小时40分钟,这就是为什么输出是40,而不是20。如果你认为输出应该是1天1小时20分钟,那么你的总时间=1520,而不是1540

“我不明白为什么它返回的是40分钟,而不是给定示例中的20分钟”-一天有1440分钟,所以去掉一天,剩下100分钟。去掉一小时(60分钟)剩下的40分钟。换句话说,它是正确的;20的期望是错误的。如果你可以访问标准的C++库,包括它的日期和时间类,那么值得学习如何使用这些库。,并且库可以正确地处理它们。