⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 汽车加油.cpp

📁 汽车加油问题的算法
💻 CPP
字号:
// 汽车加油.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

int main(int argc, char* argv[])
{
	int OilStationNum;//加油站的数目
	int MaxDist;      //汽车加满油以后行驶的最大距离
	int DiscOfCar;    //汽车一次加油后已经行驶的距离
	int Count;
	int * OilStationDist;
	printf("请输入加油站的段数(用整数表示):");
	scanf("%d",&OilStationNum);
	printf("------------------------------\n");
	printf("汽车加满油以后行驶的最大距离(用整数表示):");
	scanf("%d",&MaxDist);
	printf("---------------------------------------\n");
	OilStationDist=new int [OilStationNum-1];
	printf("请输入各各加油站之间的距离(假设不能有环路):\n");
	for (Count=0;Count<=OilStationNum-1;)
	{
		//
		scanf("%d",&OilStationDist[Count]);
		if (OilStationDist[Count]<=MaxDist)  
			Count++;
		else
			printf("你输入的加油站之间的距离大于汽车加满油以后行驶的最大距离,请重新输入当前距离!\n");
	}
	printf("-----------------------------------------\n");
	printf("下面是你输入的加油站之间的顺序间隔:\n");
	for (Count=0;Count<=OilStationNum-2;Count++)
	{
		//
		printf("加油站编号:%d,到下一站距离:%d\n",Count,OilStationDist[Count]);
	}
	printf("加油站编号:%d,到终点站距离:%d\n",OilStationNum-1,OilStationDist[OilStationNum-1]);
	DiscOfCar=0;
	Count=0;
	while (1)
	{
		if (DiscOfCar<=MaxDist)
		{
			//
			DiscOfCar+=OilStationDist[Count];
			Count+=1;
		}
		else
		{
			//
			Count-=1;
			printf("当前汽车需要在%d号加油站处加油,此时汽车行驶了%d公里\n",Count,DiscOfCar-OilStationDist[Count]);
			DiscOfCar=0;
		}
		if (Count>OilStationNum) 
		{
			printf("当前汽车到达终点,此时汽车距上一次加油行驶了%d公里\n",DiscOfCar-OilStationDist[Count]);
		}
		if (Count>OilStationNum)  break;
	}
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -