找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2289|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

一個(gè)基于C語言的碼頭調(diào)度程序,要求客車和貨車的出列順序是每四輛客車后跟一輛貨車

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:643422 發(fā)表于 2019-11-16 23:09 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include<stdio.h>
#include <stdlib.h>
#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;
}

//入隊(duì)操作
int enter(queuetype *q, elemtype x)
{
        if ((q->rear + 1) % (MAXNUM + 1) == q->front)
                return (false);                    //隊(duì)列已滿
        else
        {
                q->rear = (q->rear + 1) % (MAXNUM + 1);
                q->queue[q->rear] = x;
                return (true);
        }
}

//出隊(duì)操作
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輛車的編號(hào)是:\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("客車數(shù)%d  貨車數(shù)%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輛車的編號(hào)為%d\n", n, result);
                                                 n = n + 1;       
                                                }
                                                else
                                                break;          
                                        }
                                        int RESULT=queue_out(q2);
                                        if(RESULT!=0)
                                        {
                                          printf("上船的第%d輛車的編號(hào)為%d\n", n, RESULT);
                                          n = n + 1;
                                        }
                                }
                                break;
                      }
                      printf("以上為第%d艘船里的車輛\n\n",p);
                      p++;
                    }
                }
        }
        system("pause");
        return 0;
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表