您的位置:首页 > 编程语言 > C语言/C++

电梯调度的C语言实现(vc可正常运行)

2017-08-26 16:33 141 查看
#include <stdio.h>

int main(void)
{

//数组:a[012345]初始为0,按下向上按钮时,为1;I
//数组:b[012345]初始为零,按下某个按钮时,为1;M
//数组:c[012345]初始为0,按下向下按钮.为1;J
int a[6]={0};
int b[6]={0};
int c[6]={0};
//x=1上升;x=0等待,x=-1下降;
int x=0;
//当前位置为n;
int n=1;
//目的最远位置m;
//楼层记录M;
int m=1;
int M,J,I;
int i,j,k=0,K=0; //k为电梯停止时距离电梯最近的按钮
int z=1;
int max=1,min=1;
for(;;){
while(x==1){	//上行
n=n+x;
printf("电梯上升到%d层\n",n);
printf("哪一层有人按上\t哪一层有人按下\n");
scanf("%d%d",&I,&J);
a[I]=1;c[J]=1;
if(b
||a
){
printf("电梯停在%d层\n",n);
printf("你要去哪一层?\n");
scanf("%d",&M);
if(M<=6&&M>=0){
b[M]=1;
}
b
=0;
a
=0;
}
for(j=6;j>0;j--){
if(b[j]) {
m=j;
printf("目标楼层%d\n",m);
j=-1;
}
}
if(m-n<0)
x=-1;
if(m-n>0){
x=1;
printf("xx");
}
if(n==6||m==n)
x=0;
else
x=0;
}

while(x==-1){
n=n+x;
printf("电梯下降到%d层\n",n);
printf("哪一层有人按上\t哪一层有人按下\n");
scanf("%d%d",&I,&J);
a[I]=1;c[J]=1;
if(b
||c
){
printf("电梯停在%d层\n",n);
printf("你要去哪一层?\n");
scanf("%d",&M);
if(M<=6&&M>=0){
b[M]=1;
}
b
=0;
c
=0;
}
for(j=0;j>6;j++){
if(b[j]) {
m=j;
printf("目标楼层%d\n",m);
j=7;
}
}
if(m-n<0)
x=-1;
if(m-n>0) {
x=1;
printf("yy");
}
if(n==6||m==n)
x=0;
else
x=0;
}

while (x==0){
if(c[3]&&n!=3)
x=(3-n);
else if(a[3]&&n!=3)
x=(3-n);
else if (c[4]&&n!=4)
x=(4-n);
else if (a[2]&&n!=2)
x=(2-n);
else if (c[5]&&n!=5)
x=(5-n);
else if (c[2]&&n!=2)
x=(2-n);
else if (a[4]&&n!=4)
x=(4-n);
else if (a[5]&&n!=5)
x=(5-n);
else if (c[6]&&n!=6)
x=(6-n);
else if (a[1]&&n!=1)
x=(1-n);
else{
printf("几楼有人要上楼?\t几楼有人要下楼?\n");
scanf("%d%d",&I,&J);
while (I>=6||I<=0||J>6||J<=1){
printf("请重新输入:\n")	;
scanf("%d%d",&I,&J);
}
a[I]=1;
c[J]=1;
if ((I+J)>2*n){
m=I;
printf("目标楼层%d\t当前楼层%d\t此时上行\n",m,n);
if(a
==1)	{
printf("电梯停在%d层\n",n);
a
=0;
}
else
x=1;
}
if((I+J)<2*n){
m=J;
printf("目标楼层%d\t当前楼层%d\t此时下降\n",m,n);
if(b
==1)	{
printf("电梯停在%d层\n",n);
c
=0;
}
else
x=-1;
}
if(I==n||J==n){
printf("你要去哪一层?\n");
scanf("%d",&M);
m=M;
if(m>n){
printf("目标楼层%d\t当前楼层%d\t此时上行\n",m,n);
a
=0;
x=1;
}
if(m<n){
printf("目标楼层%d\t当前楼层%d\t此时下降\n",m,n);
c
=0;
x=-1;
}
}
}
if(x>0)
x=1;
if(x<0)
x=-1;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: