闇プログラマーに喧嘩を売ってしまった昼下がり~条件分岐篇~
※このまとめに含まれるプログラムは一種のパズル的な遊びです。
くれぐれも用法用量を守った上で正しくご利用ください><
実用するならば、“言うまでもなく” if か ?: を利用すべきです。
やばい連中に喧嘩を売ってしまった……。
続きを読む

先週の部活の新入生向けC言語講座でif-else文だったので、せっかくなので講師の二年生に「if文を使はずに、printfで完結して表示内容を分岐する方法わかる?」と質問したところ、二年はおろか三年の正答率もやばかった件とか……。
2011-05-26 13:22:43
@1ouis C言語なので、char* に 4加算 = 始点が4byteずれる ってことではないかと。比較演算子は 0 か 1 を返すので、a!=bならばずれなくて、しかも \0 で文字列が終ります。
2011-05-26 13:42:15
じゃあ、?: も使わずに表示内容を分岐する方法はわかる? QT @tadsan 先週の部活の新入生向けC言語講座でif-else文だったので、せっかくなので講師の二年生に「if文を使はずに、printfで完結して表示内容を分岐する方法わかる?」と質問したところ、二年はおろか三年…
2011-05-26 13:29:20
闇プログラマーじゃないので、呈示されたコードは読めても、知らない方法はわかりません>< RT @vivisuke: じゃあ、?: も使わずに表示内容を分岐する方法はわかる?
2011-05-26 13:33:40
戀塚さんのコード http://twitter.com/#!/@koizuka/status/73605621345300480 がどうして動くのか後輩に質問してみるとおもしろいかもしれない。後輩が文字列と\0の話をしてたのは聴いた覚えがあるので、これはきっと回答できると期待。
2011-05-26 13:32:02
@tadsan printf("A%cB",61+(a>b)-(a<b)); // ASCII code環境
2011-05-26 13:47:13