void show(void);
void add(void);
void sub(void);
void multiply(void);
void div(void);
WTF is this for? You're going to re-define these functions later anyway, from what I've seen. These codes essentially create functions show, add, etc. that don't do anything. The function definitions later already straight up works. You can delete this portion.
//Zekira is so moe <3
lol
EDIT: (wait, I DO have a C compiler here. Thank god for Visual Studio)
OK I think I see what's the problem here.

Is it that the list gets printed two times? If it is so, then this is a common problem discussed when using the scanf function for char type variables. You know how you press the Enter key so that the console scans the input? The implementation in C is kind of glitchy:
the Enter key is registered as a char in itself, and falls through to the next scanf of a char variable. If you don't get it, I'll try tracing it. Let's say we typed 'm' first to go to the multiply function and input two numbers separated by a space, just as how your program is supposed to work. So the line that works here is:
scanf("%d %d",&a,&b);
Let's say I entered '7 6' then pressed Enter. Let's break our input into multiple parts.
7 = %d , which gets written into the variable 'a'.
' ' (the space) = signifies that a new variable would be entered. It would trigger the next input to be read next.
6 = %d , which gets written into the variable 'b'.
But are those really the only 3 parts? No actually. Everytime you input something into the input stream, you use the Enter key, which is the fourth part of our input.
' ' (the enter key) = %c . Yes the enter key is actually a char type...
So where does this enter key fall to? Simple, it falls through the next iteration in the loop of:
scanf("%c",&n);
found at the start of the code. So the next input becomes an 'Enter', resulting in your program glitching as the variable 'n' becomes an Enter key, but loops anyway because it's not the key for quitting 'q' or 'Q'.
Fixing this is relatively easy, but a bit annoying. Modify your functions to look like this (note the comments I added in):
void multiply(void){
int a,b,r;
char dummy; /*this dummy character will be the one to catch your Enter input*/
printf("Input two numbers with spacing : ");
scanf("%d %d",&a,&b);
scanf("%c", &dummy); /*this way, the dummy variable gets the Enter input, and your next scanf for a %c is safe. For some reason it HAS to be in a separate line away from the first scanf, so you can't have an extra input in the scanf previous of this one since it actually becomes more buggy*/
r = a*b;
printf("%d * %d = %d\n\n",a,b,r);
}
Modify the other functions to reflect this.
Keep this in mind when making scanf inputs that are proceeded directly by char variables.