栈一共有10个,我输入9个,然后栈满,我在把第一个删了,然后我再输入一个,但我输入的是10号位置,不是1号位置

#include<stdio.h>
#include<stdlib.h>
#define maxsize 10
typedef struct {
int base;
int front;
int rear;
} SqQuence;
int initQuence(SqQuence
s) {
s->base=(int*)malloc(sizeof(int)*maxsize);
if(s->base) printf("初始化成功!");
else printf("初始化失败!");
s->front=s->rear=0;
}
int pushQuence(SqQuence *s) {
int num;
printf("\n请输入要入队的值:");
while((s->rear-s->front+maxsize)%maxsize<=maxsize-1) {

    if((s->rear+1)%maxsize==s->front) {
        printf("栈满");
        break;
    }
   
    else{
        scanf("%d",&num);
        s->base[s->rear]=num;
        s->rear=(s->rear+1)%maxsize;
        

    }
}
printQuence(*s);

}
int printQuence(SqQuence s) {
for(int i=0; i<=(s.rear-s.front+maxsize)%maxsize-1; i++)
printf("%d ",s.base[i]);
}
int pullQuence(SqQuence *s) {
if(s->rear==s->front)
printf("栈空");
else {
int e;
e=s->base[s->front];
s->front=(s->front+1)%maxsize;
pushQuence(s);
}
}
int main()
{
SqQuence s;
initQuence(&s);
pushQuence(&s);
pullQuence(&s);
}

“多一少一”问题占程序员常犯错误的10%以上!
避免“多一少一”问题的方法之一是将比如<10甚至<5的数代入程序片断,掰手指头心算验证一下程序到底应该写为
x、x-1、x+1中的哪个?
<、<=、==、>、>=中的哪个?