こんにちは、私はCプログラミングクラスの入門のテストのために勉強しています.最終的に私はそれをしました。以下にアップロードした2枚の写真があります。そのうちの 1 つは正しいコードと正しい出力を表示します。もう 1 つは、正しく動作しなかった問題に対する最初の試みの 1 つを示しています。戻って、すべてを直接コピーして貼り付けることなく、可能な限り動作するコードに似せて作成しました。
残念ながら、新しいユーザーは写真を投稿することを許可されていません。下のリンクが機能することを願っています。
これは失敗します。自然な平方根の範囲内のすべての数値を出力するわけではありません:
for (i = 2; i <= x; i++)
{
//non relevant line
a = sqrt(i);
aa = a * a;
if (aa == i);
printf("%d ",i);
}
ソース: http://i.imgur.com/WGG6n.jpg
これは成功し、自然な平方根で偶数を出力しますが、
for (i = 2; i <= x; i++)
{
a = sqrt(i);
aa = a * a;
if (aa == i && ((i/2) *2) == i)
printf("%d ", i);
}
ソース: http://i.imgur.com/Kpvpq.jpg
ここにあるスクリーンショットを見て読んでいただければ幸いです。「間違ったコード」の画像には (i/2)*2 == i の部分がないことはわかっていますが、それでも奇数と偶数だけが出力されると考えました。また、「sqrd」を計算するコードもありますが、それは出力に影響を与えるべきではありません。ただし、最後の部分で間違っている場合は修正してください。
そして、はい、私が読んだDev-C++を使用していますが、これはちょっとくだらないプログラムですが、最初はcode::blocksでこれを行いましたが、同じことをしました...
実際にくそったれのコードが機能するようになる 2 時間前に、私が何を間違えたのかについてのアドバイスや提案をいただければ幸いです。
ありがとう、アダム