#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
typedef struct Sequeue
{
int data[MAXSIZE];
int front;
int rear;
}Sequeue;
void Init(Sequeue *);
void EnSequeue(Sequeue *,int);
void DeSequeue(Sequeue *);
void GetHead(Sequeue *);
void ListSequeue(Sequeue );
void main()
{
int i,t,x;
Sequeue * p=(Sequeue )malloc(sizeof(Sequeue));
Init(p);
printf("请输入五个元素到队列中:\n");
for(i=0;i<5;i++)
{
scanf("%c",&t);
p->rear=(p->rear+1)%MAXSIZE;
p->data[p->rear]=t;
}
printf("请选择操作类型(按 0 结束):\n");
printf("\t1.入队列\t2.出队列\t3.取队头元素\t4.列出队列元素\n");
while(1)
{
scanf("\n");
scanf("%d",&t);
if(t==0)
break;
switch(t)
{
case 1:
printf("请输入元素值:");
scanf("\n");
scanf("%c",&x);
EnSequeue(p,x);
/printf("此时队列元素为:");/
ListSequeue(p);
printf("\n");
break;
case 2:
DeSequeue(p);
/ printf("此时队列元素为:");/
ListSequeue(p);
printf("\n");
break;
case 3:
GetHead(p);
break;
case 4:
ListSequeue(p);
break;
default :
printf("输入错误,请重新输入!\n");
break;
}
}
}
void Init(Sequeue * p)//初始化队列
{ p->rear=0;
p->front=0;
}
void EnSequeue(Sequeue * q,int x)//入队(循环队列最多可装 MAXSIZE-1 个元素) {
if((q->rear+1)%MAXSIZE==q->front)
{
printf("队满,无法实现入队操作\n");
}
else
{
q->rear=(q->rear+1)%MAXSIZE;
q->data[q->rear]=x;
}}
void DeSequeue(Sequeue * p)//出队列
{ if(p->rear==p->front)
{
printf("队列为空,无法实现出队操作\n");
}
else
{
p->front=(p->front+1);
} }
void GetHead(Sequeue * p)//取队头元素
{ int q;
if(p->rear==p->front)
{
printf("队列为空,无法实现出队操作\n");
}
else
{
q=p->front;
printf("此时的头元素为:%c\n",p->data[++q]);
}
}
void ListSequeue(Sequeue * q)//列出元素
{
int i;
if(q->rear==q->front)
{
printf("队列为空,无法实现出队操作\n");
}
else
{
i=(q->front+1)%MAXSIZE;
printf("此时的队列元素为:");
while(i<=q->rear)
{
printf("%c ",q->data[i]);
i++;
} }}
队列的基本操作(入队,出队,取队首,取队尾),队内数据都为浮点数,这为什么不行啊?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 赵4老师 2022-04-16 14:09关注
int data[MAXSIZE];
改为
double data[MAXSIZE];
输入输出data中数据时,使用%lf本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 蓝桥oj3931,请问我错在哪里
- ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
- ¥15 关于#Java#的问题,如何解决?
- ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
- ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
- ¥15 cmd cl 0x000007b
- ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
- ¥500 火焰左右视图、视差(基于双目相机)
- ¥100 set_link_state
- ¥15 虚幻5 UE美术毛发渲染