| > 課題の行間を埋めてわけのわからん回答を書きたくなる衝動に
かられますねぇ。
出題者の想定の斜め上を行く答を考えたくなります。
まあ求人さんの元ネタについては 80026 にて真っ当な答が出てますのでそれ以上突っ込まないことにします。
ここの元発言には2個ではなく複数のとあるので dixq のところとは別ネタなのかもしれません。
stackoverflow とここは同じネタのように読み取れます。
複数=任意個数ということは可変長引数が必要なのかもしれません。
「より大きな」という文言は「最大値1個」ではなくて「特定値より大きいもの全て」かもしれません。
とまあこんな感じで元発言はどうにでも解釈できるので
stackoverflow のほうは真剣な悪ノリ回答が付いた上で「改善待ち」になってます。
とりあえずオイラもこっち(わんくま)で真剣な悪ノリ回答を試みてみましょう。
あえてコメント無しあえて C++ っつことで。
#include <cstdarg>
#include <stdexcept>
int maxofn(int argcount, ...) {
if (argcount<=0) throw std::invalid_argument("argcount must be >0");
va_list va;
va_start(va, argcount);
int max_value_candidate=va_arg(va, int);
for (int i=1; i<argcount; ++i) {
int v=va_arg(va, int);
if (v>max_value_candidate) max_value_candidate=v;
}
va_end(va);
return max_value_candidate;
}
// throw invalid_argument にするか assert にするかが悩みどころ。
// 皆様ならどうしますか? ってのは別スレッドにて意見募って見ましょうか・・・
|