某停车场上从左到右有一排有10个车位。某日需预留8个连续的车位,其中5个停轿车、3个停厢式货车。若,停车场找不到自己的车怎么办

文章 2年前 (2021) admin
0

Q1:高中数学题?

从10个车位中选出8个连续车位,有3种可能,要使得货车不相邻,只需要将5辆轿车排好,从轿车产生的6个空隙中,选出3个给货车,即可达到目的,5俩轿车的排列顺序有A(5,5)=120种可能,货车插空有A(6,3)=120种可能,则车位预留方案有3×A(5,5)×A(6,3)=43200种

Q2:C语言栈和队列问题:停车场停车问题

# ifndef _ _ plot _ h _ _ # define _ _ plot _ h _ _ # define false 0 # define true 1 # define money1//单价可自行定义# define max _ stop 10 # define max _ pav 100//存储汽车品牌typedefstruct { inttime1//进入停车场时间inttime2//离开停车场的时间char plate[10];//车牌号,定义一个字符指针类型}汽车;//驻留堆栈typedef结构{ carstop[max _ stop-1];//每个汽车信息的存储空间inttop//静态指针,用于指示栈顶位置}停止;//等待队列typedefstruct { intcount//用于指示队列中的数据数量car avae[MAX _ PAVE-1];//前后各车信息的存储空间;//静态指针,用于指示领队和队尾的位置}铺装;//让位于堆栈typedefstruct { carelp[max _ stop-1];//每个汽车信息的存储空间inttop//用于指示栈顶位置的静态指针} Buffer停工;PavementpBufferbCarccharC[10];void stop _ pave();//车停在人行道void car _ come();//停在停车位void stop _ to _ buff();//汽车进入让路栈void car _ leave();//汽车离开void welcome();//主界面功能void display();//显示车辆信息# endif 12345678910112131415161718192021222222242527293031323233041424444474849505051525354555555657源文件图c #。Include#include//包含时间函数# include # include void stop _ to _ pave()//停在人行道上{//判断队列是否已满(p . count 0(p . front==(p . rear 1)% max _ pave)){ printf("人行道已满,请下次使用。}else{strcpy(p.Pave[p.rear]。板块,C);p . rear=(p . rear 1)% MAX _ PAVE;//在结束指示器中添加1p.count//将1printf添加到计数器中("牌照为%s的汽车在人行道上停在% d on ",C,p .后方);}}voidcar_come()//停放在停车位{printf("请输入要停放的车牌号: ");//输入车牌号scanf("%s ",C);If(s.top=MAX_STOP-1)//如果车位已满,停在人行道{ STOP _ to _ pave();//停车位-人行道功能} else { s.top//停车场栈顶指针增加1time _ tt1longintt=时间(t1);//标注进入停车场的时间char * t2T2=ctime(t1);//获取当前时间c . time 1=t;停止。板块,C);//在printf中注册车牌号("车牌号为%s的车停在车位%d,当前时间为:%s\n ",C,s.top 1,T2);}返回;}voidstop_to_buff()//汽车进入让路栈{//停车位。

栈压入临时栈,为需要出栈的车辆让出道    while (s.top >= 0)      {           if (0 == strcmp(s.Stop[s.top--].plate, C))        {            break;        }        // 让出的车进入让路栈        strcpy(b.Help[b.top++].plate, s.Stop[s.top + 1].plate);        printf ("牌照为%s的汽车暂时退出停车位\n", s.Stop[s.top + 1].plate);    }       b.top --;    // 如果停车位中的车都让了道,说明停车位中无车辆需要出行    if (s.top = 0)    {        strcpy(s.Stop[++s.top].plate, b.Help[b.top--].plate);        printf ("牌照为%s的汽车停回停车位%d车位\n", b.Help[b.top + 1].plate, s.top + 1);    }    // 从便道中 -> 停车位    while (s.top < MAX_STOP-1)    {        if (0 == p.count)               // 判断队列是否为空        {            break;          }        // 不为空,将便道中优先级高的车停入停车位        else                            {            strcpy(s.Stop[++s.top].plate, p.Pave[p.front].plate);            printf ("牌照为%s的汽车从便道中进入停车位的%d车位\n", p.Pave[p.front].plate, s.top+1);            p.front = (p.front + 1) % MAX_PAVE;            p.count--;        }    }}void car_leave()                        // 车离开{    printf ("请输入即将离开的车牌号:\n");    scanf ("%s", &C);    if (s.top < 0)                      // 判断停车位是否有车辆信息    {        printf ("车位已空,无车辆信息!\n");    }    else    {        stop_to_buff();    }    time_t t1;          long int t = time (&t1);                    c.time2 = t;                        // 标记离开停车场的时间    char* t2;    t2 = ctime (&t1);                   // 获取当前时间    printf ("离开时间%s\n需付%ld元\n", t2, MONEY * (c.time2 - c.time1) / 10);}void Display(){    int i = s.top;    if (-1 == i)    {        printf ("停车场为空\n");    }    time_t t1;    long int t = time(&t1);             // 标记显示时的时间    printf ("\t车牌号\t\t\t停放时间\t\t当前所需支付金额\n");    while (i != -1)    {               printf ("\t%s\t\t%d秒\t\t\t%d元\n", s.Stop[i].plate, t - c.time1, MONEY * (t - c.time1) / 10);        i--;    }}void welcome(){        printf ("\t*******************目前停车场状况***********************\n");        printf ("\t停车场共有%d个车位,当前停车场共有%d辆车,等候区共有%d辆车\n", MAX_STOP, s.top+1, (p.rear + MAX_PAVE - p.front)        % MAX_PAVE);        printf ("\t********************************************************\n");        printf ("\t---------------Welcome to our Car Parking---------------\n");          printf ("\t*                     1.Parking                        *\n");          printf ("\t*                     2.leaving                        *\n");          printf ("\t*                     3.situation                      *\n");          printf ("\t*                     4.exit                           *\n");          printf ("\t--------------------------------------------------------\n");} 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150主函数 main.c/**********************************************************问题描述:停车场是一个能放 n 辆车的狭长通道,只有一个大门,汽车按到达的先后次序停放。若车场满了,车要在门外的便道上等候,一旦有车走,则便道上第一辆车进入。当停车场中的车离开时,由于通道窄,在它后面的车要先退出,待它走后依次进入。汽车离开时按停放时间收费。基本功能要求:    1)建立三个数据结构分别是:停放队列,让路栈,等候队列    2)输入数据模拟管理过程,数据(入或出,车号)。***********************************************************/#include "PLot.h"int main(){    // 初始化    s.top   = -1;    b.top   =  0;    p.rear  =  0;    p.count =  0;    p.front =  0;    while(1)    {        system("clear");        welcome();        int i, cho;        scanf ("%d", &i);        if (1 == i) car_come();         if (2 == i) car_leave();        if (3 == i) Display();        if (4 == i) break;        printf ("返回请输入1\n");        scanf ("%d", &cho);        if (1 == cho)        {            continue;        }        else        {            printf ("您的输入有误,请重新输入\n");            scanf ("%d", &cho);            continue;        }    }    return 0;}

Q3:某停车场画出一排12个停车位置,今有8辆需停放,要求使空车位连在一起,不同的停放方法共有多少种?

首先,分析表明,8辆车停在一起的情况数量为A 8 8。此时包括两端在内有9个空位,选择一个空位,将4个空位插在一起。有C 9 1的情况。根据分步计数原理,可以得到A8C19不同的停车方式。扩展两种常用排列的基本计数原理和应用。1.加法原理和分类计数:每个类别中的每种方法都可以独立完成这项任务;两种不同方法中的具体方法互不相同(即分类不重);任何完成这个任务的方法都属于某一类(即分类不缺失)。2.乘法原理和分步计数法:这个任务在任何一步都不能用一种方法完成,只有连续完成这n步才能完成这个任务;每个步数是独立的;只要一步采用的方法不同,完成这一步的相应方法也不同。

Q4:某停车场有12个停车位置排成一行,求有8个位置停了车。而且四个位置连在一起的概率

C(4,8)*5/C(8,12)=70/99 .A(n,m)=n * (n-1) * (n-2).(n-m1),即每个数从n向下相乘。A(n,m)/A(m,m).一般把m(mn)个元素从n个不同元素中取为一组,称为从n个不同元素中取m个元素的组合。资料提炼:概率加法法则定理:设A和B是互不相容的事件(AB=),那么:P(AB)=P(A) P(B)推论1:设A1,A2,…,An是互不相容的,那么:P (A1A2.An)=P(。

Q5:某停车场有12个位子排成一排,求有8个位子停了车而空着的4个位子连在一起的概率

设事件A为“有8个位子停了车而空着的4个位子连在一起”事件A的可能结果有9种 P=9/C(4 12)=1/55

Q6:某停车场有10个车位,其中2个车位只能停货车,4个车位只能停客车,其余车位货车、客车都能停。

放两辆卡车只有两种方法。在每种放置方式下,其他车辆随机放置。所以只考虑4路和2路公交车的位置,然后乘坐2.4路公交车停在8个地方。“p 84”=8 * 7 * 6 * 5=1680 1680乘以2=3360。

相关文章