题目
已知一辆汽车加满油后可行驶 d km,而旅途中有若干个加油站。编写一个实验程序指出应该在哪些加油站停靠加油,使加油次数最少。用a数组存放各加油站之间的距离,例如a[]={2,7,3,6},表示一共有 n=4 个加油站,从起点到0号加油站的距离为2km,以此类推。
代码
#include<stdio.h>
#define Max 100
int main(){
int stations[Max];//八个间距
int ins; //油箱满的时候可以走的距离
int num;//中间加油站的数量
int i;
int all=0;//总的加油次数
int lv;//油箱中的油量可以走的距离
printf("请输入加油站的油量和数量\n");
scanf("%d%d",&ins,&num);
lv=ins;//油量赋初值
printf("请输入加油站间的距离\n");
for(i=0;i<num;i++){
scanf("%d",&stations[i]);
}
printf("加油站间的距离分别为:\n");
for(i=0;i<num;i++){
printf("%d ",stations[i]);
}
puts("");
for(i=0;i<num;i++){//如果油量可以支撑下一段路,则继续走
if(stations[i]>ins) {
printf("汽车不可能达到终点站");
return 0;
}
if(lv>=stations[i]){
lv-=stations[i];
}
else { //否则加满油
lv=ins-stations[i];
all++;
}
}
printf("需要加油的总的加油站数量\n");
printf("%d\n",all);//输出总的加油次数
}
以下为我的微信公众号:技术经理的成长
会不定期进行更新,欢迎关注