C言語(3) くり返しと分岐の練習問題

スポンサーリンク

C言語を使ってみよう!

前回までに変数、表示、分岐、くり返しを学びました。

今回は、それらを使う練習問題を出します。今までに学んだ知識だけでできるはずなので、チャレンジしてみてください!

前にやった内容を忘れてしまった場合は、以下のリンクから復習できます。

練習1

実行結果が以下のように表示されるプログラムを作ってください。

I have a pen.

ほとんどHello Worldと同じです。まずはウォーミングアップから。

練習2

実行結果が以下のように表示されるプログラムを作ってください。

I have 2 pens.
I have 4 pens.
I have 6 pens.
I have 8 pens.
I have 10 pens.

数字を2ずつ増やすには・・・くり返しを使いたくなりますね。

練習3

実行結果が以下のように表示されるプログラムをforとifを使って作ってください。

1 is an odd number.
2 is an even number.
3 is an odd number.
4 is an even number.
5 is an odd number.

奇数の時にodd、偶数の時にevenと表示されています。

くり返しの中で偶数か奇数かを判別して分岐すると良いです。

偶数とは2で割った余りが0の数。余りを%を使って出せるのは「C言語(1) 変数を使った計算と表示」の最後の方に出てきましたね。

b = a % 2; とするとbにはaを2で割ったときの余りが入ります。

練習4

以下の実行例のように、1から始まる整数を -> の左側に、その整数の2乗の値を -> の右側に順に表示し、2乗の値(右側)が1000を超えたらそこで終了するプログラムをwhileを使って作ってください。

1 -> 1
2 -> 4
3 -> 9
4 -> 16
  : (省略)

answer = a * a; のように、2乗の値を格納するための変数を作っておくと良いでしょう。

変数を2つ表示する場合は、printf(“%d -> %d¥n”, a, answer); のように”~”の中に%dを2つ書いて、そのあとに変数も2つ、カンマ区切りで書けば良いです。

もしプログラムが終了しない状態になったら、Ctrl+Cでストップできます。

練習5

100以下の素数を空白区切りで表示するプログラムを作ってください。素数とは「1より大きい整数で、1と自分自身でしか割り切れない数」のことです。

2 3 5 7 ...(省略)... 97

ある整数が素数かどうかを調べるには、他の整数では割り切れないことをチェックすれば良いです。

当然、その数より大きい数では割り切れないので、自分自身より小さい数をチェックすることになります。

応援メッセージ

いくつ解けましたか?

3~4問できたら、分岐やループの使い方を理解できていると思います。

もし5問とも全部できてしまったという人は、変数、分岐、ループをかなり使いこなしていると思います!

練習5は初心者には難しい問題なので、できなくてもガッカリする必要はありません。

でも、チャレンジして色々試してみることが大事です。

問題に取り組む中でgccによるコンパイルのときにエラーが出てしまうこともあるでしょう。

その場合、どこかがC言語の文法として間違っていますので、「C言語(2) 分岐、くり返し」に載せたよくある間違いとエラーの例なども参考にしてください。

次回のブログで解説をします。

タイトルとURLをコピーしました