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.