主观

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。

 [说明]

 这是一个模拟渡口管理的算法。某汽车轮渡口,过江渡船每次能载10辆车过江。过江车辆分为客车类和火车类,上船有如下规定:同类车先到先上船,客车先于货车上渡船,且每上4辆客车,才允许上一辆货车;若等待客车不足4辆,则以货车代替,若无货车等待则允许客车都上船。

 程序中用到的函数有enqueue(queue*sq,elemtype*x)在队列sq中入队一个元素x;outqueue(queue*sq,elemtype*x)在队列sq中出队一个元素,并将其值赋给x;empty(queue*sq)判断队列sq是否为空队,若为空,返回1;否则返回0。

 [C程序]

 #include<stdio.h>

 void pass(){

  queue bus,truct; /*bus表示客车队列,truck表示货车队列*/

   char ch;

   int n,tag; /* ]n为车号,tag为标志,tag=0表示客车,tag=1表示货车*/

   intcount=0,countbus=0,counttruck=0; /*分别表示上渡船汽车数、客车数、货车数*/

   while(1){

    printf("输入命令: \n");

    Scanf("%c",&ch);

    switch(ch){

     case'e': 

     case'E': printf("车号: \n");

         Scanf("%d",&n);

         printf("客车\货车(0\1): \n");

         scanf("%d",&tag);

         if( (1) )

          enqueue(&bus,n);

         else

          enqueue(&truck,n);

         break;

     case'i': 

     case'I': while(count<10){

         if( (2) && empty(&bus)==0){  /*客车出队*/

          outqueue(&bus,&n);

          printf("上船的车号为: \n");

          count++;

          (3) ;

         }

         eise if( (4) ){  /*货车出队*/

          countbus=0;

          outqueue(&truck,&n);

          printf("上船的车号为: \n");

          count++;

          counttruck++;

         }

         else if(empty(&bus)==0){

          (5);

          outqueue(&truck,&n);

          printf("没有10辆车排队轮渡\n");

          count++;

          countbus++;

         }

         else{

          printf("没有10辆车排队轮渡\n");

          retUrn;

         }

         break;

        }

     case'q':

     case'Q':break;

     }

     if(ch=='q' || ch=='Q')

      break;

  }

 }

参考答案
您可能感兴趣的试题

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。

 [说明]

 这是一个模拟渡口管理的算法。某汽车轮渡口,过江渡船每次能载10辆车过江。过江车辆分为客车类和火车类,上船有如下规定:同类车先到先上船,客车先于货车上渡船,且每上4辆客车,才允许上一辆货车;若等待客车不足4辆,则以货车代替,若无货车等待则允许客车都上船。

 程序中用到的函数有enqueue(queue*sq,elemtype*x)在队列sq中入队一个元素x;outqueue(queue*sq,elemtype*x)在队列sq中出队一个元素,并将其值赋给x;empty(queue*sq)判断队列sq是否为空队,若为空,返回1;否则返回0。

 [C程序]

 #include<stdio.h>

 void pass(){

  queue bus,truct; /*bus表示客车队列,truck表示货车队列*/

   char ch;

   int n,tag; /* ]n为车号,tag为标志,tag=0表示客车,tag=1表示货车*/

   intcount=0,countbus=0,counttruck=0; /*分别表示上渡船汽车数、客车数、货车数*/

   while(1){

    printf("输入命令: \n");

    Scanf("%c",&ch);

    switch(ch){

     case'e': 

     case'E': printf("车号: \n");

         Scanf("%d",&n);

         printf("客车\货车(0\1): \n");

         scanf("%d",&tag);

         if( (1) )

          enqueue(&bus,n);

         else

          enqueue(&truck,n);

         break;

     case'i': 

     case'I': while(count<10){

         if( (2) && empty(&bus)==0){  /*客车出队*/

          outqueue(&bus,&n);

          printf("上船的车号为: \n");

          count++;

          (3) ;

         }

         eise if( (4) ){  /*货车出队*/

          countbus=0;

          outqueue(&truck,&n);

          printf("上船的车号为: \n");

          count++;

          counttruck++;

         }

         else if(empty(&bus)==0){

          (5);

          outqueue(&truck,&n);

          printf("没有10辆车排队轮渡\n");

          count++;

          countbus++;

         }

         else{

          printf("没有10辆车排队轮渡\n");

          retUrn;

         }

         break;

        }

     case'q':

     case'Q':break;

     }

     if(ch=='q' || ch=='Q')

      break;

  }

 }

¥

订单号:

遇到问题请联系在线客服

订单号:

遇到问题请联系在线客服