ужос конечно, но по крайней мере понятно как она работает и что она делает. После доработки напильником получилось:
char *c[]={"BizzBuzz\n","Bizz\n","Buzz\n","%d\n"};
for (int i=1;i<=100;i++)
printf(c[((i%3>0)<<1)+(i%5>0)],i);
я долго смеялся, потому как сам имею слабость к подобному "рефракторингу". И когда программа состоит из подобных головоломок больше чем наполовину, то по прошествии некоторого времени ее приходится рефракторить обратно, переписывая в стиле readwrite, а не writeonly