我为头衔太低表示歉意,但我想更具体一些,但是我正在参加入门编程课程,并且我没有太多的编程经验。我得到的问题是,我需要找到爬山的全部绳索。它必须准确地指出需要多少根100英尺的绳索,以及多少根10英尺的绳索。我面临的问题是,例如当山高611英尺时,我不确定如何使程序显示需要6根100英尺的绳索和2根10英尺的绳索。我的代码允许使用600或610或10英尺之类的简单数字,但我不知道如何补偿介于几十个数字之间的数字。我的代码位于下方-再次致歉,我无法对此进行更具体的说明。
pushWarning
答案 0 :(得分:2)
要确定10英尺长的绳索的数量,只需在剩余高度上加9,然后再除以10即可得出最后的步幅:
ten_feet_rope = (total_height % 100 + 9) / 10;
您的问题陈述还不够精确:
如果目标是最大程度地减少绳索的总重量,则两个答案都是相同的,但第一个答案似乎更易于使用。
这是修改后的版本:
#include <stdio.h>
int main() {
// declaration of variables
int total_height;
int hundred_feet_rope;
int ten_feet_rope;
//prompt user for input information
printf("How tall is the mountain?\n");
if (scanf("%d", &total_height) != 1)
return 1;
//calculations for how many skeins of 100 feet rope are needed, and how many 10 feet rope is needed
hundred_feet_rope = (total_height + 9) / 100;
if (100 * hundred_feet_rope >= total_height)
ten_feet_rope = 0;
else
ten_feet_rope = (total_height % 100 + 9) / 10;
//output results
printf("You will need %d skeins of 100 feet rope and %d skeins of 10 feet rope!\n", hundred_feet_rope, ten_feet_rope);
return 0;
}
答案 1 :(得分:1)
要消耗额外的10英尺长的绳索,您需要 的10的倍数,则必须按现有编号以考虑最后划分之前绳索的该额外长度。
ten_feet_rope = (total_height % 100 + 9) / 10;
// here ============================^^^
这在计算机科学中很常见。例如:使用指定的块大小对称加密任意数量的数据。
至少我认为这就是您要问的。我将解决这种潜在的泄漏问题变成了100英尺的倍数(可能会发生。假设您的高度为95英尺;在这种情况下,您需要一个100英尺长,而没有10英尺长)。
答案 2 :(得分:1)
您可以使用模数运算符查看剩余数除以10是否大于0,如果是,则将其增加一根10英尺的绳索:
if (total_height % 10 > 0)
ten_feet_rope++;