Queue implementation using arrays,What is the problem with the code given here. It is not giving the expected result

#include
using namespace std;
#define max_size 3
struct queue{
char a[max_size];
int size;
};
void queue_init(queue *q){
q->size=0;
}
bool queue_empty(queue *q){
return(q->size==0);
}
bool queue_full(queue *q){
return(q->size==max_size);
}
bool inspect_front(queue *q,char &element){
if(queue_empty(q))
return false;
else{
element=q->a[q->size-1];
return true;
}
}
bool queue_insert(queue *q,char element){
if(queue_full(q))
return false;
else{
for(int i=0;isize;i++){
q->a[i]=q->a[i+1];
}
q->a[0]=element;
q->size++;
return true;
}
}
bool queue_front(queue *q, char &element){
if(queue_empty(q))
return false;
else{
q->size–;
element=q->a[q->size];

	return true;
}

}

int main(){
queue q;
char element;
queue_init(&q);
if(queue_empty(&q)==true)
cout<<"Queue is empty "<<endl;
else
cout<<"queue is not empty "<<endl;
element=‘A’;
if(queue_insert(&q,element)==true)
cout<<"element inserted "<<element<<endl;
else
cout<<"queue is full "<<endl;
element=‘V’;
if(queue_insert(&q,element)==true)
cout<<"element inserted "<<element<<endl;
else
cout<<"queue is full "<<endl;
element=‘I’;
if(queue_insert(&q,element)==true)
cout<<"element inserted "<<element<<endl;
else
cout<<"queue is full "<<endl;
element=‘N’;
if(queue_insert(&q,element)==true)
cout<<"element inserted "<<element<<endl;
else
cout<<"queue is full "<<endl;

if(inspect_front(&q,element)==true)
cout<<"The front element is "<<element<<endl;
else
cout<<"queue is empty "<<endl;
for(int i=0;i<10;i++){
if(queue_front(&q,element)==true){
cout<<"Element popped is "<<element<<endl;
}
else{
cout<<"Queue is empty ";
break;
}
}

}