yashigani?.days

週刊少年ジャンプについてだらだら書きます

出てこなかった.

C言語で以下の関数を作る.
与えられた数に対しその数に最も近い4の倍数に繰り上げする関数.

int round(int val){
/* ここにコードを挿入 */
}

これは少ない行で作らないかん!と思って

条件式 ? A : B

を使えば1行で書ける!と思ったんやけど,いかんせんほとんど使ったことのない表現やったので“:”か“|”なんかごっちゃになってしまい,結局ifを使って2行で書きましたとさ.
日頃からプログラミングしてないからこんなことになるんやなー.
簡単な関数やけど,久しぶりに考えてみたらえらいおもしろかった.


ちなみに書いた答えが

if(val % 4) return val + 4 - val % 4;
return val;

で,書きたかったのが

return val % 4 ? val + 4 - val % 4 : val;

1行にまとめてもなんだか醜い気もする・・・