裏表(Phinloda のもう裏だか表だか分からないページ)

コンピュータ・プログラミング系の話がメインのそれなりにごちゃごちゃしたネタばかり出てくるサイトです。多分。
<< Yahoo!知恵袋に出ていたC言語の質問への凄い回答 (1) | Top | Yahoo!知恵袋に出ていたC言語の質問への凄い回答 (3) >>
Yahoo!知恵袋に出ていたC言語の質問への凄い回答 (2)

昨日の投稿の続きである。 元となっている質問、回答は「C言語の問題です。 問1から100までの整数の中に3の倍数がいくつあるかを求めるプロ... - Yahoo!知恵袋」をご覧ください。

ベストアンサー以外の回答を見ていこう。 まず、monomorai34さんの回答。

int j;//3の倍数の数

初期化するというのは、そんなに難しいことなのだろうか。

ていうか、学校で教えないのだろうか。あるいは独学かもしれないが。まあいいけど、このプログラムも実行すると

機100の整数の中に3の倍数は2674309個あります。

と表示されるのだが、もしかして最近使われている処理系の中には、この結果が正しく出るようなものがあるのかもしれない。 Java だったら問題ないんだけど。

なお、for ループの中で変数 i が宣言されているが、この書き方は C99 から追加された仕様なので、古いコンパイラだとコンパイルできないかもしれない。gcc を使う場合は -std=c99 というオプションを使えば対応できる。 古いっていっても、C99 ができてから10年以上経っているんですけどね。

コメントについて。

if(i%3==0) j++;//変数iがさ3の倍数だったら変数jに1を追加

「さ3の倍数」というのは typo か何かだと思うので気にしないが、原則として、このコメントは必要ない。こんな内容はC言語でプログラムを書ける人なら誰でも分かる。

ただ、この回答は質問をしている初心者の方へ説明のためのものだから、あえて必要ないコメントを書いて説明したかったのだと思う。そう理解すれば親切でよいと思うが、初心者の皆さんは、実際のコードにこんなコメントを書かないように気をつけて欲しい。

次にカテゴリマスタのe165850_kiyosekiさんの回答。 要するに自分で書けというのだが、 これは基本的に素晴らしい。だから最後の著作権保護法の所が蛇足なのが惜しい。 回答としてはこれがベストアンサーでもいい位だ。

もう一つだけ違和感が残るのは「アルゴリズムを生み出す力」というところである。 基本的に、アルゴリズムは生み出すものではなく、他の人が作ったパターン当てはめるという感覚になると思う。 いろんなプログラムを読んで、こんなやり方があるのか、と驚く。それがまず基本だ。 素人ならともかく、もしプロなら自分でアルゴリズムを生み出していくようではいけない。

それにしても質問にコードが出ていないのは残念だ。 コードが書いてあれば、このように評も出来るのだから、学習の助けにもなると思うのだが。

(つづく)

JUGEMテーマ:コンピュータ
| C言語 | 22:10 | comments(0) | trackbacks(0)
スポンサーサイト
| - | 22:10 | - | -
コメント
コメントする









この記事のトラックバックURL
http://phinloda.jugem.cc/trackback/3174
トラックバック
Powered by "JUGEM"
▲このページの先頭へ
CALENDAR
S M T W T F S
   1234
567891011
12131415161718
19202122232425
2627282930  
<< November 2017 >>
NEW ENTRIES
CATEGORIES
ARCHIVES
NEW COMMENTS
NEW TRACKBACKS
LINKS
PROFILE