一名快递员有一个能承受最大重量为50公斤的送货箱。他需要依次接收若干个包裹,并将它们按顺序放入送货箱中进行配送。
每个包裹的重量各不相同。如果在接收某个包裹后,送货箱内的总重量超过了其最大承重能力,
则快递员需要先完成当前送货箱内所有包裹的配送,然后再开始接收新的包裹放入空的送货箱。
请计算快递员需要几次才能将所有包裹配送完毕。
(如果单个货物超过50公斤的(>50公斤),直接忽略不配送此货物)
示例1:
请输入包裹的数量:4
请依次输入每个包裹的重量(单位:公斤):
第 1 个包裹的重量: 8
第 2 个包裹的重量: 51
第 3 个包裹的重量: 6
第 4 个包裹的重量: 5
需要1次才能将所有包裹配送完毕。
示例2:
请输入包裹的数量:5
请依次输入每个包裹的重量(单位:公斤):
第 1 个包裹的重量: 8
第 2 个包裹的重量: 7
第 3 个包裹的重量: 50
第 4 个包裹的重量: 1
第 5 个包裹的重量: 2
需要3次才能将所有包裹配送完毕。
------------------------------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容,仅在
Program-End之间填入若干语句。
不要删除标志否则不得分。
不要修改或删除Program-End之外的内容否则不得分。
----------------------------------------------------------------------*/
#include <stdio.h>
// 函数用于计算所需的送货次数
int calculateDeliveryTimes(int weights[], int size) {
int currentWeight = 0;
int deliveryTimes = 1;
/**********Program**********/
/********** End **********/
return deliveryTimes;
}
int main() {
int size;
printf("请输入包裹的数量:");
scanf("%d", &size);
int weights[size];
printf("请依次输入每个包裹的重量(单位:公斤):\n");
for (int i = 0; i < size; ++i) {
printf("第 %d 个包裹的重量: ", i + 1);
scanf("%d", &weights[i]);
}
int times = calculateDeliveryTimes(weights, size);
printf("需要%d次才能将所有包裹配送完毕。\n", times);
return 0;
}