FizzBuzz問題 続き

int main(){
 for(int i=1;i<101;i++){
  printf(i%3?"%s":"Fizz%s",i%5?"":"Buzz");
  printf(i%3&&i%5?"%d\n":"\n",i);
 }
}


int main(){for(int i=1;i<101;i++){printf(i%3?"%s":"Fizz%s",i%5?"":"Buzz");printf(i%3&&i%5?"%d\n":"\n",i);}}
で107byte。

追記:
もいっちょ!

int main(){
 for(int i=1;i<101;){
  printf(i%3?i%5?"%s%d\n":"%s\n":"Fizz%s\n",i%5?"":"Buzz",i++);
 }
}


int main(){for(int i=1;i<101;){printf(i%3?i%5?"%s%d\n":"%s\n":"Fizz%s\n",i%5?"":"Buzz",i++);}}
で94byte。まだまだか。

追追記:
よくよく考えたらmainの引数のargcには1が入っているわけで。

int main(int i){
 while(i<101)
  printf(i%3?i%5?"%s%d\n":"%s\n":"Fizz%s\n",i%5?"":"Buzz",i++);
}

と出来て
int main(int i){while(i<101)printf(i%3?i%5?"%s%d\n":"%s\n":"Fizz%s\n",i%5?"":"Buzz",i++);}
で90byte。やっぱりまだまだ詰められるもんなんだな。


追追追記:問題発生
cygwingccコンパイルしたら結果が異なる…。i++の評価位置が違うッぽい…。
あとint main のintは削っても良いのか…。そうなると
main(int i){while(i<101)printf(i%3?i%5?"%s%d\n":"%s\n":"Fizz%s\n",i%5?"":"Buzz",i++);}
で86byte。又は
main(int i){for(;i<101;i++)printf(i%3?i%5?"%s%d\n":"%s\n":"Fizz%s\n",i%5?"":"Buzz",i);}
で87byte。