电梯模拟程序?(c语言或其他语言的算法思
朋友你好!
main()
{
int floor;/*存放电梯当前层数。1234和-1为相应的层数,若为0,则是电梯正在运行中(必须记录电梯的状态,否则乘客怎么坐啊)*/
float time_total;/*总时间,为最后printf用。 我理解的是最后printf出一个类似xy 轴的坐标图,x轴是时间,y轴是电梯和乘客的状态,用文字描述出来*/
int door[5];/*各个楼层是否有人等。程序运行的时候,可以扫描此数组,是否有乘客等电梯*/
float time_dt_run;/*如果电梯在运行,记录电梯运行的时间。 */
struct per
{
in...全部
朋友你好!
main()
{
int floor;/*存放电梯当前层数。1234和-1为相应的层数,若为0,则是电梯正在运行中(必须记录电梯的状态,否则乘客怎么坐啊)*/
float time_total;/*总时间,为最后printf用。
我理解的是最后printf出一个类似xy 轴的坐标图,x轴是时间,y轴是电梯和乘客的状态,用文字描述出来*/
int door[5];/*各个楼层是否有人等。程序运行的时候,可以扫描此数组,是否有乘客等电梯*/
float time_dt_run;/*如果电梯在运行,记录电梯运行的时间。
*/
struct per
{
int floor;/*此人会在哪层等电梯*/
float time;/*此人会在什么时间等电梯*/
}person[10];/*定义有10个人*/
time_total=0。
0 /*初始化总时间为0*/
while(1)/*一个死循环,扫描楼层状态,确定电梯如何运作,打印单位时间内各对象的状态*/
{
for(i=0;i<5;i++) /*看哪层有人等,扫描的时间被忽略不计*/
{
if(door[i]==0)
continue;
else
{
/*如果电梯此刻在运行中,*/
/*如果电梯在开关门*/
/*如果电梯在非本垒层等人*/
if(floor!==0)
{
time_total+=abs(floor-i)*10;
for(j=0;j<10;j++)
{
if(time_total-person[j]。
time+30
祝您成功!!!。收起