【发布时间】:2011-02-04 05:16:54
【问题描述】:
我必须花几天时间将它们转换成周数和天数。
我知道我必须使用% 运算符,但我该如何使用它呢?
【问题讨论】:
标签: c++ visual-c++ operators
我必须花几天时间将它们转换成周数和天数。
我知道我必须使用% 运算符,但我该如何使用它呢?
【问题讨论】:
标签: c++ visual-c++ operators
% 是模(余数)运算符。在您的情况下,请尝试:
int weeks = total_days / 7;
int remaining_days = total_days % 7;
【讨论】:
奇怪的是,当人们提出问题时说“我知道”,他们往往是错的。您根本不需要模数 (%)。
int weeks = total_days / 7;
printf("%d days is equal to %d weeks and %d days.\n",
total_days, weeks, total_days - weeks*7);
【讨论】:
weeks,并且在任何地方都不需要整数除法。 @TheBigO:编译器可以很好地将total_days % 7 优化为相同的代码。我不使用模数的主要目的是挑战提问者思考问题,并告诉我们使用模数是家庭作业要求还是仅仅是“他所听到的需要”。
实际上,您可以将总天数除以 7,得到周数。 那么你可以用 7 对总天数进行取模,然后得到剩余的天数。 这还不够吗
【讨论】:
% (模运算符)为您提供余数。因此,days % 7 将为您提供转换为周后剩余的天数。即,如果 days = 15,则 days % 7 将等于 1。
【讨论】: