A past puzzle — fully playable. 4 attempts, hints on wrong guesses.
stdle-136.c
1#include<stdio.h>
2intmain(void){
3unsignedu=3;
4if(u-3)
5printf("path A\n");
6else
7printf("path B\n");
8return0;
9}
Conversions
Answer & explanation
Console output
path B
Why
The expression u - 3 is 0 when u equals 3, and 0 is treated as false in the condition, so the else branch runs and prints path B. Even though unsigned subtraction would wrap for smaller u, here it lands exactly on zero. C truthiness only cares whether the result is zero or nonzero.