Insertion and deletion over multiple queue

Insert and delete operations are performed on multiple queue whose size is 20. Queue follows FIFO format while performing insert and delete operation.First the front and rear is initialized to -1.Numbers are inserted from the positions 0 to 19.While deleting the number ,the first inserted number is removed first i.e. the numbers are removed from the position 0 to 19. While inserting the data in queue,the number of queue is used.For eg,if two queues are created then the logical numbers of these queues are 0 and 1.These logical numers are used while performing insert and delete operations.

//... C Language program to implement the Multiple Queues
# include < stdio.h >
# include < conio.h >
# define max 20
void main()
{
	int queue[max],  data;
	int bott[10], limit[10], f[10], r[10];
	int i, n, qno, size, option, reply;
	clrscr();
	printf("\n C Language program to implement the Multiple Queues \n");
	printf("\n How Many Queues ? : ");
	scanf("%d", &n);
	size = max / n; //... Get Max. size for each Queue
	//... Initialize bottom for each Queue
	bott[0] = -1; //... Bottom of first Queue is -1
	for(i = 1; i < n; i++)
		bott[i] = bott[i-1] + size;
	//... Initialize Limit of each Queue
	for(i = 0; i < n; i++) //... Limit of i'th Queue is equal to bottom of i'th Queue + Size
		limit[i] = bott[i] + size;
	//... Initialize Front & Rear of each Queue
	//... Initial value of Front & Rear of each Queue is same as its Bottom Value
	for(i = 0; i < n; i++)
		f[i] = r[i] = bott[i];
	//... Process the Queues
	do
	{
		printf("\n C Language program to implement the Multiple Queues \n");
		printf("\n 1. Insert in a Queue");
		printf("\n 2. Delete from a Queue");
		printf("\n 3. Exit \n");
		printf("\n Select proper option ( 1 / 2 / 3 ) : ");
		scanf("%d", &option);
		switch(option)
		{
			case 1 : //... Insert
				printf("\n Enter a Logical Queue Number (0 to %d) : ", n-1);
				scanf("%d", &qno);
				printf("\n Enter Data : ");
				scanf("%d", &data);
				reply = insq(queue, qno, r, limit, &data);
				if( reply == -1)
					printf("\n Queue %d is Full \n", qno);
				else
					printf("\n %d is inserted in a Queue No. %d \n", data, qno);
				break;
			case 2 : //... Delete
				printf("\n Enter a Logical Queue Number (0 to %d) : ", n-1);
				scanf("%d", &qno);
				reply = delq(queue, qno, f, r, &data);
				if( reply == -1)
					printf("\n Queue %d is Empty \n", qno);
				else
					printf("\n %d is deleted from Queue No. %d \n", data, qno);
				break;
			case 3 : exit(0);
		} // switch
	}while(1);
} // main
int insq( int queue[max], int qno, int rear[], int limit[], int *data )
{
	if( rear[qno] == limit[qno] )
		return(-1);
	else
	{
		rear[qno]++; //... rear[qno] = rear[qno] + 1;
		queue[ rear[qno] ] = *data;
		return(1);
	} // else
} // insq
int delq( int queue[max], int qno, int front[], int rear[], int *data)
{
	if( front[qno] == rear[qno] )
		return(-1);
	else
	{
		front[qno]++; //... front[qno] = front[qno] + 1;
		*data = queue[ front[qno] ];
		return(1);
	} // else
} // delq