循环队列基本运算的一个问题 求鱼油们 帮帮忙 急 在线等你们
本帖最后由 权志龙_爱死你la 于 2013-4-10 22:46 编辑#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
#define NULL 0
typedef struct
{
int data;
int front,rear;
}seqQue;
void main()
{
int base_seqQue(seqQue * Q);
int input_seqQue(seqQue * Q,int &e);
int output_seqQue(seqQue * Q,int &e);
seqQue * Q;
Q=(seqQue*)malloc(sizeof(seqQue));
if(Q==NULL)
exit(0);
else
Q->front=Q->rear=-1;
int e;
printf("请输入队列中的原有的所有元素:\n");
base_seqQue(Q);
printf("请输入要入队的元素:\n");
input_seqQue(Q,e);
output_seqQue(Q,e);
system("pause");
}
int base_seqQue(seqQue * Q)
{
int i;
for(i=0;i<MAXSIZE;i++)
{
scanf("%d",&Q->data);
if(Q->data==0)
return 0;
Q->rear++;
}
return 1;
}
int input_seqQue(seqQue * Q,int &e)
{
if((Q->rear+1)%MAXSIZE==Q->front)
{ printf("队满!不能插入!\n");
return 0;
}
else
{
Q->rear=(Q->rear++)%MAXSIZE;
Q->data=e;
return 1;
}
}
int output_seqQue(seqQue * Q,int &e)
{
if(Q->front==Q->rear)
{
printf("队空!不能输出!\n");
}
else
{
Q->front=(Q->front++)%MAXSIZE;
e=Q->data;//读出队头元素
}
return 1;
}
运行的时候红色字的时候 就结束了 为什么??
呵呵,不好意思,又是你,不不,又是我。
你的红色字体的地方忘了给e赋值,所以得不到你要的结果。
main的代码:
void main()
{
int base_seqQue(seqQue * Q);
int input_seqQue(seqQue * Q,int &e);
int output_seqQue(seqQue * Q,int &e);
seqQue * Q;
Q=(seqQue*)malloc(sizeof(seqQue));
if(Q==NULL)
exit(0);
else
Q->front=Q->rear=-1;
int e;
printf("请输入队列中的原有的所有元素:\n");
base_seqQue(Q);
printf("请输入要入队的元素:");
scanf("%d",&e);
input_seqQue(Q,e);
printf("队列的头元素是:");
output_seqQue(Q,e);
printf("%d\n",e);
system("pause");
}结果:
我反反复复的编辑很多遍 怎么 就一直是斜体的data 后的还能自动省略郁闷 鱼油们 对付着看吧我那个data后都有的 小新110 发表于 2013-4-10 23:35
呵呵,不好意思,又是你,不不,又是我。
你的红色字体的地方忘了给e赋值,所以得不到你要的结果。
哦哦,我马虎了,谢谢你哈,手机不能设满意答案,中午回去马上送鱼币,希望下次有问题你也会来帮我回答,定有重谢:-D 小新110 发表于 2013-4-10 22:36 static/image/common/back.gif
呵呵,不好意思,又是你,不不,又是我。
你的红色字体的地方忘了给e赋值,所以得不到你要的结果。
哦 对了 问你哦你这代码是怎么发上去的我的怎么编辑都是斜体太难看了回答者看着也不舒服 回复里面点高级,两个尖括号包起来的那个功能,就是添加代码
强烈支持楼主ing……
页:
[1]