I have the following code:
z=x-~y-1;
printf(\"%d\",z);
z=(x^y)+2(x&y);
printf(\"%d\",z);
z=(x|y)+(x&y);
printf(\"%d\",z);
z=2(x|y)-(x
Change
z=(x^y)+2(x&y);
to
z=(x^y)+2*(x&y);
and
z=2(x|y)-(x^y);
to
z=2*(x|y)-(x^y);
You need the multiplication operator if multiplication is what you intended.
As for what the error means: 2(x&y) tells the compiler to call the function 2, passing x&y as an argument (just like printf("hi") means "call printf and pass "hi" as an argument").
But 2 isn't a function, so you get a type error. Syntactically speaking, whenever you have a value followed by (, that's a function call.