| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1690 人关注过本帖
标题:那位大虾帮我看看这个队列的函数啊(要求队列初始化 入队列 出队列的操作)
只看楼主 加入收藏
123605585
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2004-11-14
收藏
 问题点数:0 回复次数:6 
那位大虾帮我看看这个队列的函数啊(要求队列初始化 入队列 出队列的操作)

救救啊 就是哪个IN函数除了问题了

本人QQ:123605585 不胜感激。。。

#define LEN sizeof(struct sb) #define NULL 0 #include<stdio.h> struct sb {char ch; struct sb *next; }; struct sb *base,*top,*p;

void creat() /*chushihua*/ {char str[100]; int i=0; printf("\nIMPUT:"); scanf("%s",str); top=base=p=(struct sb *)malloc(LEN); top->ch=str[i]; top->next=NULL; i++; while(str[i]!=NULL) {top=(struct sb *)malloc(LEN); top->ch=str[i]; p->next=top; top->next=NULL; p=top; i++; } } void in() {char la; printf("\nIMput:"); la=getchar(); top=(struct sb *)malloc(LEN); top->ch=la; p->next=top; p=top; top->next=NULL; printf("\nIN successfully!\n"); } out() {base=base->next; printf("OUT SUCCESSFULLY"); } void print() {struct sb *b; b=base; if(base==NULL) printf("NONE OF CHARS!\n"); else printf("\nTHOSE DATA ARE:"); while(b->next!=NULL) { printf("%3c",b->ch); b=b->next; } printf("%3c",b->ch); }

void choose() { printf("\n1:in.\n2:out.\n3:print.\n4:exit.\n"); } main() { char mm; int xuan; creat(); do {choose(); scanf("%d",&xuan);

switch(xuan) {case 1:in();break;

case 2: out();break; case 3: print();break; defult: break; } }while(xuan<4);

}



搜索更多相关主题的帖子: 队列 函数 
2004-11-14 11:06
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 

你哪里不行要说清楚,不要说在in()里面,好像语法上通过了,怎么不行法?

[此贴子已经被作者于2004-11-14 13:44:13编辑过]

2004-11-14 13:38
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
char mm;  //这个变量没有用上
2004-11-14 13:41
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
#define LEN sizeof(struct sb)  //这里这样定义倒真的挺SB
2004-11-14 13:42
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 

top=base=p=(struct sb *)malloc(LEN);

上面一句需要用这个头文件 #include<stdlib.h>

2004-11-14 13:42
anhua200hl
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2004-10-10
收藏
得分:0 

语法没有错误啊

但是就是无法运行啊

什么原因?????


我是菜鸟,我想飞..............................
2004-11-14 22:01
stnlcd
Rank: 1
等 级:新手上路
帖 子:177
专家分:1
注 册:2004-11-21
收藏
得分:0 

将你的main()函数中的scanf("%d",&xuan);该改为scanf("%d%*c",&xuan); 其中%*c为"吃掉回车符.经编译后获得成功!

你的程序出错的原因是:在出现菜单1:in. 2:out. 3:print. 4:exit.时你必须输入1或2或3...并回车确认,此时你输入了两个字符:1(比如你输入1)和回车字符.并将这两个字符保存在计算机的缓冲区中,在执行scanf("%d",&xuan);时,1被xuan所获得而回车字符依然保存在缓冲区中.因此在下面执行in中的la=getchar();时getchar将直接获得缓冲区中的回车字符而不会提示用户输入,从而跳过了getchar的输入.所以需要加%*c吃掉回车符.


要让一个男人破产,请给他一架相机,要让一个男人倾家荡产,请给他一架望远镜。
2004-11-21 20:27
快速回复:那位大虾帮我看看这个队列的函数啊(要求队列初始化 入队列 出队列的操 ...
数据加载中...
 
   



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

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