Tricky C Program

#include<stdio.h>
int main()
{
int a,b,c;
int count = 1;

for (b = c = 10;
a = "- FIGURE?, UMKC,XYZHello Folks,\
TFy!QJu ROo TNn(ROo)SLq SLq ULo+\
UHs UJq TNn*RPn/QPbEWS_JSWQAIJO^\
NBELPeHBFHT}TnALVlBLOFAkHFOuFETp\
HCStHAUFAgcEAelclcn^r^r\\tZvYxXy\
T|S~Pn SPm SOn TNn ULo0ULo#ULo-W\
Hq!WFs XDt!"[b+++21]; )
for(; a-- > 64 ; )
putchar ( ++c=='Z' ? c = c/ 9:33^b&1);

return 0;
}

I compiled and Run this program. It will print India Map and I don't know how it will works. Can any one Explain the above program.
It is relatively easy, just obfuscated.

It prints three characters: ' ' -> 32, '!' -> 33, '\n' -> 10

a determines the number of repetition of the character to print from the array.
b is the index in the array for a.
c determines when to print the new line character '\n'.

c='Z' -> 90 so c/ 9 -> 10

The difference between 32 and 33 is the least significant bit.
33^b&1 toggles the least significant according to the index variable b. Basically an even/odd condition.

Topic archived. No new replies allowed.