| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1158 人关注过本帖, 1 人收藏
标题:帮我看一下,有关队的输出,为什么输出问号呀?
只看楼主 加入收藏
lizjohn
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2010-10-28
结帖率:70.59%
收藏(1)
已结贴  问题点数:12 回复次数:6 
帮我看一下,有关队的输出,为什么输出问号呀?
循环队列
#include<stdio.h>
#include<stdlib.h>
#define MAX 10
struct M
{
    char*base;
    int front;
    int rear;
    int len;
   
};
void init(struct M*sq)                        //建队
{
    sq->base=(char*)malloc(MAX*sizeof(char));
    sq->len=0;
    sq->rear=0;
    sq->front=0;
}
void rudui(struct M*sq,char x)                     //入队
{
    if(sq->len==MAX)
    {
        printf("队满!\n");
        exit(0);
    }
    else
    {
        x=sq->base[sq->rear];
        sq->len++;
        sq->rear=(sq->rear+1)%MAX;
    }
}

void chudui(struct M*sq,char*e)                      //出队
{
    if(sq->len==0)
    {
        printf("队空!\n");
        exit(0);
    }
    *e=sq->base[sq->front];
    sq->front=(sq->front+1)%MAX;
    sq->len--;
}
void main()
{   char ch;
struct M S;
int y,z,h;
init(&S);
while((ch=getchar())!='\n')
rudui(&S,ch);
while(S.len!=0)
{
    chudui(&S,&ch);
   printf("%c\n",ch);
}

}
比如输入abc,为什么输出3个问号
搜索更多相关主题的帖子: 问号 输出 
2010-11-21 18:00
xiaomarn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:348
专家分:2026
注 册:2009-3-18
收藏
得分:6 
程序代码:
#include<stdio.h>
#include<stdlib.h>

#define MAX 10

struct M
{
    char*base;
    int front;
    int rear;
    int len;
  

};

void
init(struct M*sq)                        /*建队 */
{
    sq->base=(char*)malloc(MAX*sizeof(char));
    sq->len=0;
    sq->rear=0;
    sq->front=0;
}

void
rudui(struct M*sq,char x)                     /*入队*/
{
    if(sq->len==MAX)
    {
        printf("队满!\n");
        exit(0);
    }
    else
    {
        sq->base[sq->rear]=x;       /*change here*/
        sq->len++;
        sq->rear=(sq->rear+1)%MAX;
    }
}

void
chudui(struct M*sq,char*e)                      /*出队 */
{
    if(sq->len==0)
    {
        printf("队空!\n");
        exit(0);
    }
    *e=sq->base[sq->front];
    sq->front=(sq->front+1)%MAX;
    sq->len--;
}

int
main()
{
      char ch;
      struct M S;
      int y,z,h;
      init(&S);

      while((ch=getchar())!='\n')
            rudui(&S,ch);
      while(S.len!=0)
      {
            chudui(&S,&ch);
            printf("%c\n",ch);
      }
      getch();
      return 0;
}
输入abc输出abc,问题在rudui函数,line 34
2010-11-21 18:52
lizjohn
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2010-10-28
收藏
得分:0 
回复 2楼 xiaomarn
果然对了,但原来那样为什么不对啊,我没看出他们有什么区别
2010-11-21 19:41
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
收藏
得分:6 
楼主怎么一回学二叉树,这回有时对列了
2010-11-22 09:13
lizjohn
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2010-10-28
收藏
得分:0 
回复 4楼 遮天云
我在学数据结构,不懂就问,不存在什么一会学这,一会学那,还要多谢你这样的高手经常指教。那能帮我解决我的这个问题吗
2010-11-22 12:28
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
收藏
得分:0 
以下是引用lizjohn在2010-11-22 12:28:19的发言:

我在学数据结构,不懂就问,不存在什么一会学这,一会学那,还要多谢你这样的高手经常指教。那能帮我解决我的这个问题吗

不是,我就是有疑问。上个帖子你问的二叉树,现在你又问了队列,我就是说他俩不是一个章节的,你怎么一下子学两个章节的内容,我不是什么高手哈,我还在学数据结构呢。现在才看到队列另外二楼的是对的,记住你是把他入队啊,好好想想

[ 本帖最后由 遮天云 于 2010-11-22 16:28 编辑 ]
2010-11-22 16:22
lizjohn
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2010-10-28
收藏
得分:0 
回复 6楼 遮天云
恍然大悟,谢谢!!!共同努力!!!
2010-11-22 22:10
快速回复:帮我看一下,有关队的输出,为什么输出问号呀?
数据加载中...
 
   



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

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