/*---------------------------------------------------------------------- 【程序设计】 ------------------------------------------------------------------------ 现在有一位赛车手要驾驶一台电动摩托车去完成多段赛程。这台电动摩托车的电 池电量存储 上限是 100 度电哦,它有一个标称的平均电耗,也就是每行驶 100 公里,就会消 耗 10 度 电。这里有个很重要的前提条件要大家牢记呀,每一段赛程的距离都是小于 600 公里的哦, 并且每次出发的时候,电动摩托车的电池都是充满电的状态呢。还有一个关键的规 则得注意 哦,如果电动摩托车到达某个地点之后,赛车手查看发现电池内剩余的电量低于电 池总电量 的 10%(也就是 100×10% = 10 度电或者更少啦),那这个时候就必须得在这个 地方给电 动摩托车充电了呢,请帮忙计算一下,这名驾驶员在赛程中的哪几段赛程前是需要 充电的。 示例1: 【请输入赛程段数:】 5 【请输入各段赛程距离,单位公里:】 380 200 390 400 300 【需要在以下几段赛程前充电:】 第 3 段赛程前 第 5 段赛程前 示例2: 【请输入赛程段数:】 4 【请输入各段赛程距离,单位公里:】 190 140 110 80 无需充电。 ------------------------------------------------------------------------ 注意:部分源程序给出如下。请勿改动主函数 main 或其它函数中给出的内容,仅 在 Program-End 之间填入若干语句。 不要删除标志否则不得分。 不要修改或删除Program-End 之外的内容否则不得分。 ----------------------------------------------------------------------*/ #include #include // 引入stdlib.h 用于动态内存分配相关操作 #define TANK_CAPACITY 100 // 电池总容量(单位:度) #define LOW_FUEL_LIMIT (0.10 * TANK_CAPACITY) // 低电量阈值(10%) #define AVG_CONSUMPTION_PER_100KM 10 // 平均电耗(单位:度/百公里) #define FUEL_CONSUMPTION_PER_KM (AVG_CONSUMPTION_PER_100KM / 100.0) // 每公里电耗(单位:度/公里) int checkRefuelStops(int trips[], int count, int results[]) { int refuel_count = 0; double current_fuel = TANK_CAPACITY; /**********Program**********/ int i; for(i=0;i 0) { printf("【需要在以下几段赛程前充电:】\n"); for (int i = 0; i < refuel_count; i++) { printf("第 %d 段赛程前\n", results[i]); } } else { printf("无需充电。\n"); } free(trips); free(results); return 0; }