关于C语言队列的问题帮我修改一下啊
发布网友
发布时间:2023-07-06 16:21
我来回答
共2个回答
热心网友
时间:2024-03-22 18:14
#include<stdlib.h>
#include<stdio.h>
#include<iostream.h>
#define Queuesize 100
typedef int DataType;
typedef struct
{
int front,rear,count;
DataType data[Queuesize];
}CirQueue;
void InitQueue(CirQueue *Q)
{
Q->front=Q->rear=0;
Q->count=0;
}
int QueueFull(CirQueue *Q)
{
return Q->count==Queuesize;
}
void EnQueue(CirQueue *Q,DataType x)
{
if(QueueFull(Q))
printf("Queue overflow");
else
{
Q->data[Q->rear]=x;
Q->rear=(Q->rear+1)%Queuesize;
}
}
void main()
{
int i=0,j=0,n,a[100],x;
CirQueue q1,q2;
InitQueue(&q1);
InitQueue(&q2);
printf("Input the max:");
scanf("%d",&n);
printf("input the data:");
for(x=0;x<n;x++)
{
scanf("%d",&a[x]);
if(a[x]%2==1)
{
EnQueue(&q1,a[x]);
i++;
}
else
{
EnQueue(&q2,a[x]);
j++;
}
}
printf("%d,%d\n",i,j);
}
热心网友
时间:2024-03-22 18:14
#include<stdlib.h>
#include<stdio.h>
#define Queuesize 100
typedef int DataType;
typedef struct
{
int front,rear,count;
DataType data[Queuesize];
}CirQueue;
void InitQueue(CirQueue *Q)
{
Q->front=Q->rear=0;
Q->count=0;
}
int QueueFull(CirQueue *Q)
{
return Q->count==Queuesize;
}
void EnQueue(CirQueue *Q,DataType x)
{
if(QueueFull(Q))
printf("Queue overflow");
else
{
Q->data[Q->rear]=x;
Q->rear=(Q->rear+1)%Queuesize;
}
}
void main()
{
int i,j,a[100],x;
CirQueue q1,q2;
InitQueue(&q1);
InitQueue(&q2);
i=j=0; //没有初始化i 和j
for(x=0;x<5;x++)
{
scanf("%d",&a[x]);
if(a[x]%2==1)
{
EnQueue(&q1,a[x]);
i++;
}
else
{
EnQueue(&q2,a[x]);
j++;
}
}
printf("%d,%d\n",i,j);
}