第七周 项目三 负数把正数赶出数列

本文介绍了一个使用环形队列处理正负数输入序列的C++程序。当输入正数时将其加入队列,遇到负数则移除队首元素,直至输入0结束。该程序展示了如何在主函数中调用入队和出队操作,并在发生异常时输出错误信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*       
Copyright (c)2016,烟台大学计算机与控制工程学院       
All rights reserved.       
文件名称:第7周项目3 - 负数把正数赶出队列.cpp       
作    者:李良涵       
完成日期:2016年10月21日       
版 本 号:v1.0       
       
问题描述:设从键盘输入一整数序列a1,a2,…an,试编程实现: 
          当ai>0时,ai进队,当ai<0时,将队首元素出队,当ai=0时, 
          表示输入结束。要求将队列处理成环形队列, 
          使用环形队列算法库中定义的数据类型及算法, 
          程序中只包括一个函数(main函数),入队和出队等操作直接在main函数中调用即可。 
          当进队出队异常(如队满)时,要打印出错信息。  
输入描述:无 
程序输出:若干数据。 
*/  

  1. #include "sqqueue.h"  
  2.   
  3.   
  4. int main()  
  5. {  
  6.     ElemType a,x;  
  7.     SqQueue *qu;    //定义队列  
  8.     InitQueue(qu);  //队列初始化  
  9.     while (1)       //无限循环  
  10.     {  
  11.         printf("输入a值(输入正数进队,负数出队,0结束):");  
  12.         scanf("%d", &a);  
  13.         if (a==0)  
  14.             break;  
  15.         else  
  16.         {  
  17.             if (a>0)  
  18.             {  
  19.                 if (!enQueue(qu,a))  
  20.                     printf("  队列满,不能入队\n");  
  21.             }  
  22.             else if (a<0)  
  23.             {  
  24.                 if (!deQueue(qu, x))  
  25.                     printf("  队列空,不能出队\n");  
  26.             }  
  27.         }  
  28.     }  
  29.     return 0;  
  30. }  
运行结果:


心得体会:

  判断队列是否满或空的代码要求,队列先进先出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值