C语言至少需要几辆车,一个基于C语言的码头调度程序,要求客车和货车的出列顺序是每四辆客车后跟一辆货车...

#include

#include

#define true 1

#define false 0

#define null  0

#define MAXNUM  20

typedef int  elemtype;

typedef struct queue_type

{

elemtype queue[MAXNUM + 1];

int front;

int rear;

} queuetype;

queuetype Q1;

queuetype Q2;

//初始化

void  q_init(queuetype *q)

{

q->rear = q->front = 0;

}

//入队操作

int enter(queuetype *q, elemtype x)

{

if ((q->rear + 1) % (MAXNUM + 1) == q->front)

return (false);                    //队列已满

else

{

q->rear = (q->rear + 1) % (MAXNUM + 1);

q->queue[q->rear] = x;

return (true);

}

}

//出队操作

elemtype queue_out(queuetype *q)

{

if (q->front == q->rear)

return (null);

else

{

q->front = (q->front + 1) % (MAXNUM + 1);

return(q->queue[q->front]);

}

}

int main()

{

int p=1;

int i, j, k, m, n, x, y, z;

queuetype *q1;

queuetype *q2;

q1 = &Q1;

q2 = &Q2;

q_init(q1);

q_init(q2);

for (m = 1;m <=100;m++)

{

printf("\n");

printf("若是入列,请输入1;若是出列,请输入0:\n");

scanf_s("%d", &z);

if (z != 0 && z != 1)

{

printf("ERROR!!!\n");

scanf_s("%d", &z);

}

if (z == 1)

{

{

printf("第%d辆车的编号是:\n", m);

scanf_s("%d", &x);

printf("若是客车,请输入1;若是货车,请输入0:\n");

scanf_s("%d", &y);

if (y == 1)

{

enter(q1, x);

}

else if (y == 0)

{

enter(q2, x);

}

}

printf("客车数%d  货车数%d", q1->rear, q2->rear);

}

else if (z == 0)

{

for(k=m/10;k>=0;k--)

{

for(n=1;n<=10;)

{

for (j = 1;j <= 2;j++)

{

for (i = 0;i <= 3;i++)

{

int result=queue_out(q1);

if(result!=0)

{

printf("上船的第%d辆车的编号为%d\n", n, result);

n = n + 1;

}

else

break;

}

int RESULT=queue_out(q2);

if(RESULT!=0)

{

printf("上船的第%d辆车的编号为%d\n", n, RESULT);

n = n + 1;

}

}

break;

}

printf("以上为第%d艘船里的车辆\n\n",p);

p++;

}

}

}

system("pause");

return 0;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值