以下是问题:
成本分析是工程的重要组成部分。当您在实践中时,可能会要求您编写程序以确定许多不同潜在情况的最低成本。您的程序可以用作项目的决策制定工具。
考虑建造一个机场,跑道建在垃圾填埋场上。承包商有两辆自卸卡车,一辆载重量为8吨,另一辆载重量为12吨。承包商使用卡车从远程站点运送到机场位置。 8吨和12吨卡车的每趟运行成本分别为14.57美元和16.26美元。一辆卡车不能超过总行程的60%。
编写一个程序,开发给定吨数的最低成本。提示用户输入总吨数。显示每辆卡车所需的行程次数和总成本。为该程序使用模块化设计。
以下是我的尝试:
#include <stdio.h>
int main (void)
{
double mass, sixtyPercentMass;
int eightCount = 0, twelveCount = 0;
printf("Enter the number of tons: ");
scanf("%lf", &mass);
sixtyPercentMass = 0.6 * mass;
while((twelveCount*12) < sixtyPercentMass) {
twelveCount++;
}
while((eightCount*8) < (mass - sixtyPercentMass)) {
eightCount++;
}
printf("Total trips required: %d\n", (twelveCount+eightCount));
printf("Number of 12-ton trucks required: %d\n", twelveCount);
printf("Number of 8-ton trucks required: %d\n", eightCount);
printf("Total cost: $%lf", (twelveCount*16.26 + eightCount*14.57));
return 0;
}
问题:
我如何解释在卡车上浪费空间? 目前,如果剩下1个,那就浪费了整辆卡车。使用符合要求质量的卡车实际上会更便宜。
如何正确地完成总行程的60%阈值?
它目前仅占质量的60%。
伪代码或正确方向上的步骤对于所需的逻辑是有帮助的。
答案 0 :(得分:0)
首先,您需要将问题从程序中分离出来。尝试一步解决这两个问题时,您会发现问题需要什么,因为您正在处理将问题作为软件运行所需的内容。
为了优化最小数量的卡车,您应该想出一种确保不使用不需要的卡车的方法。一种方法是尝试使用最大数量的最小卡车,并通过更换较大的卡车来“减少”解决方案。另一种方法是使用最大的卡车,然后检查部分满载的卡车,可用小卡车代替。
然而,您解决了这个问题,它不需要计算机来解决问题。一旦你可以在没有计算机的情况下在某种程度上解决问题(即使方案只在你脑海中),那么你可以开始编写一个程序来完成实现解决方案所需的任务。
从写作作为第一步开始非常像通过开始切割和锤击木头来建造房屋,然后想知道如何在没有外部门,厨房,墙壁电源线的情况下进食等等。