#define max 7
typedef struct {
int data[max];
int front,rear,tap;
}sqqueue;
int rudui(sqqueue *a){
if (a->front==a->rear&&a->tap==1){
printf("队列已满,无法入队\n");
return 0;
}
else {
printf("想输入哪种元素\n");
scanf("%d",&a->data[a->front]);
printf("a->front=%d\n",a->front);
a->front=(a->front+1)%(max+1);
a->tap=1;
}
return 1;
}
int main()
{
sqqueue a;int i;
initate(&a);
for( i=0;i<=7;i++){
rudui(&a);
}
rudui(&a);
return 0;
}
如果输入的数组为0到7,代码运行正确,但换数运行时在最后一次循环会输入的数字是多少a->front就是多少