| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 494 人关注过本帖
标题:求大神看看什么地方错了,很简单的一道题,但我找不到错误了
取消只看楼主 加入收藏
ssc1017
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-10-7
结帖率:0
收藏
已结贴  问题点数:10 回复次数:3 
求大神看看什么地方错了,很简单的一道题,但我找不到错误了
题目是:
Description
实现环形队列(MAXN不超过100001),要求能够进行进队出队操作,参考课本P15页例程。
Input
初始时,队列为空。
 第一行有一个整数q,表示操作的个数,接下来的q行里,每行格式如下:
enqueue xxx, 表示把整数xxx进队;
dequeue, 表示出队.
Output
对于每次出队操作,打印出队元素,如出队不成功,打印-1.
Sample Input
 3
 enqueue 1234567890
 dequeue
 dequeue
Sample Output
 1234567890
 -1
我写的代码是
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAXN 100001
int que[MAXN];
int head=0,tail=0;

void en_queue(x)
  int x;
  {
      tail=(tail+1)%MAXN;
      if(tail==head)
      {
          if(tail==0)tail=MAXN-1;
          else tail--;
      }
      else que[tail]=x;
  }

int de_queue(p_y)
 int *p_y;
 {
     if(head==tail)
        return(-1);
     head=(head+1)%MAXN;
     *p_y=que[head];
     return (*p_y);
 }


int main()
{
    int q,i;
    int x;
    char str[8];
    scanf("%d",&q);
    for(i=0;i<q;i++)
    {
        scanf("%s",str);
        if(strcmp(str,"enqueue")==0)
        {
            scanf("%d",&x);
            en_queue(x);
        }
        if(strcmp(str,"dequeue")==0)
        {
            printf("%d\n",de_queue());
        }

    }
    return 0;
}
我自己运行了没有问题,但就是过不了,请大神帮忙看下错哪里了,我实在找不到了
搜索更多相关主题的帖子: include 课本 元素 
2014-10-07 11:50
ssc1017
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-10-7
收藏
得分:0 
不是,我照书上的
2014-10-07 13:33
ssc1017
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-10-7
收藏
得分:0 
我们教材选的是复旦的书,好像很早的了,现在都没有卖的
2014-10-07 13:34
ssc1017
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-10-7
收藏
得分:0 
那这个代码有什么问题吗,我一直过不了,不知道是什么细节没考虑到
2014-10-07 13:38
快速回复:求大神看看什么地方错了,很简单的一道题,但我找不到错误了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024762 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved