next up previous contents
Next: 8. 特別な演算子 Up: 7. 特別な演算子 Previous: 7.2 変わった代入演算子

7.3 課題8

cd c を実行した後で( ~/c に移動した後で)、以下の課題を やってみよ。

課題 8.1
倍数の足し算 I

1 以上 max 未満の全ての n の倍数の和を計算するプログラムを作成せよ。 但し、n, max はキーボードから入力できるようにすること。また、 少なくとも n = 2, max = 100 と n = 3, max = 1000 については実行してみよ。 結果はそれぞれ 2450 と 166833 となる。

課題 8.2
最小の倍数

min 以上の最小の n の倍数を求めるプログラムを作成せよ。例えば、 100 以上で最小の 3 の倍数は 102 となる。但し、min, n はキーボードから 入力できるようにすること。

ヒント

x =( min / n ) * n; とすると、変数 x の値は 割り切れない場合には min 未満の最大の n の倍数となっている。 (例えば、min = 9; n = 2; の場合には、x は 8 となる。) 一方、割り切れる場合には min に等しい。

課題 8.3
倍数の足し算 II

課題 8.1,8.2 を利用して、min 以上 max 未満の m の倍数の和を計算する プログラムを作れ。但し、min , max 及び 倍数 m は キーボードから入力出来るようにすること。 実際に、 min = 1000, max = 10000, n = 11 についてやってみよ。

作成したプログラムと結果をメイルで、creport まで送ること。 但し、題は kadai08 とすること。

前回の復習

論理演算

論理値の間の演算を論理演算と呼び、結果は真か偽である。(c 言語では、 偽は0、それ以外の数値は全て真であることに注意せよ。) 論理演算子には次のようなものがある。

演算子 機能 優先順位
! 否定 1
&& and(かつ) 2
|| or (または) 3
論理 and と 論理 or 演算は2項演算子であるのに対し、否定演算子は単項 (一つの論理値に作用する)演算子である。また、否定演算子は関係演算などより 優先度が高いので、! a > b は、(!a)>b と等しい点に注意する。 紛らわしい場合は、丸括弧をつけることで演算の順序を指定できるので、積極的に 丸括弧を使った方が良い。

各演算子の意味は次の通りである。

否定
真のものを否定すれば、偽。偽を否定すれば真。
論理 and
2つの論理値が同時に真である時のみ真。それ以外は全て偽。
論理 or
2つの論理値が同時に偽である時のみ偽。それ以外は全て真。



Noriyo Kanayama