C: 2008年12月アーカイブ

 入り口、Hello Worldは随分前に作ったから、今回はスルー。

 以前躓いた、2~n(0,1は素数ではないため除外)までの素数判定プログラムを製作してみた。

 

 

 100までの数が素数であることは確認。

 滑稽者氏にはcount?使えとか言われたけれど、何とか条件分岐のみで実現してみせた。力技感が抜けないのが傷だが、アルゴリズムらしいアルゴリズムを組めたから由としよう。 

 

 ところで、プログラムを組んでて気づいた事がある。

 if文は、{}で囲む場合と、囲まない場合があり、前者の場合{}までの内容を実行し、後者は次の一文(このプログラムの場合ならば15行目のifにより分岐する16行目のcontinue;と、17行目のifにより分岐する18行目のprintf("%d,", b);)を実行する。

 俺は今まで、後者の場合も前者と同様に、一文以上を指定できるのかと勘違いしていたが、次の;までしか実行されないんですね、これが。

 実はこのプログラム、意図した結果ではありません。

 17行目のifの分岐に、19行目まで掛かると誤認してました。

 実際に動けば、素数判定なぞ何のその、ただnまでの数を羅列するプログラムと成り果てる所でした。

 もしそんな事になっていたら、また投げましたね、ええ。

 しかし、結果はbreak;が旨い具合に動作してくれたお陰で完成したりしてます、正に棚から牡丹餅

 いや、記述した本人が言うのもなんだが、奇蹟ですね、ええ。

 15行目とbreak;がいい感じにif( b % c == 0) break;の動作を演出してくれたお陰で完成に漕ぎ着けた? と思いたい。

 

 取り合えず、第一回目はこんな所で終わりたい。

 第二回目の題目は決まってないので隔日更新です。そもそも二回目があるかどうかも怪しいですがね。

このアーカイブについて

このページには、2008年12月以降に書かれたブログ記事のうちCカテゴリに属しているものが含まれています。

次のアーカイブはC: 2009年2月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

C: 2008年12月: 月別アーカイブ