It says it's a syntax error, and I agree with it.
and what says about:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define uns unsigned
uns fn(uns x,uns y,uns z){return x?1:y?2:z?3:0;}
int main(void)
{uns x, y, z;
srand(time(0));
x=rand(); y=rand(); z=rand();
printf("fn(%u, %u, %u)=%u\n", x, y, z, fn(x, y, z));
printf("fn(%u, %u, %u)=%u\n", 1, 0, 0, fn(1, 0, 0));
printf("fn(%u, %u, %u)=%u\n", 0, 1, 0, fn(0, 1, 0));
printf("fn(%u, %u, %u)=%u\n", 0, 0, 1, fn(0, 0, 1));
printf("fn(%u, %u, %u)=%u\n", 0, 0, 0, fn(0, 0, 0));
return 0;
}
"return x?1:y?2:z?3:0;"
seems more clear than
"
if(x) r=1;
else if(y) r=2;
else if(z) r=3;
else r=0;
return r;
"