2401_88952919 2024-11-13 12:56 采纳率: 0%
浏览 8

一辆大客车可以载客44人,一辆小客车可以载客24人,大客车每日租金1200元,小客车每日租金800元,请根据旅行团人数,算出最经济的租车方案,即大客车和小客车分别多少辆。

一辆大客车可以载客44人,一辆小客车可以载客24人,大客车每日租金1200元,小客车每日租金800元,请根据旅行团人数,算出最经济的租车方案,即大客车和小客车分别多少辆。

  • 写回答

2条回答 默认 最新

  • kinghero123456 2024-11-13 13:19
    关注
    
    #include <stdio.h>
    
    #define MAX_PEOPLE 100  // 假设旅行团人数不会超过100人
    #define BIG_BUS_CAPACITY 44
    #define SMALL_BUS_CAPACITY 24
    #define BIG_BUS_RENT 1200
    #define SMALL_BUS_RENT 800
    
    int main() {
        int people;
        printf("请输入旅行团人数: ");
        scanf("%d", &people);
    
        if (people <= 0 || people > MAX_PEOPLE) {
            printf("人数输入无效!\n");
            return 1;
        }
    
        int minCost = MAX_PEOPLE * (BIG_BUS_RENT + SMALL_BUS_RENT);  // 初始化为一个非常大的值
        int bestBigBuses = 0, bestSmallBuses = 0;
    
        // 遍历所有可能的大客车数量
        for (int bigBuses = 0; bigBuses * BIG_BUS_CAPACITY <= people; bigBuses++) {
            // 计算需要的小客车数量
            int remainingPeople = people - bigBuses * BIG_BUS_CAPACITY;
            int smallBuses = (remainingPeople + SMALL_BUS_CAPACITY - 1) / SMALL_BUS_CAPACITY;  // 向上取整
    
            // 计算总租金
            int cost = bigBuses * BIG_BUS_RENT + smallBuses * SMALL_BUS_RENT;
    
            // 如果找到更经济的方案,则更新最佳方案
            if (cost < minCost) {
                minCost = cost;
                bestBigBuses = bigBuses;
                bestSmallBuses = smallBuses;
            }
        }
    
        printf("最经济的租车方案: 大客车 %d 辆, 小客车 %d 辆, 总租金 %d 元\n", bestBigBuses, bestSmallBuses, minCost);
    
        return 0;
    }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 11月13日