プログラミング入門II 演習課題 2019.04.15

Back to text page


演習課題

  1. 関数の基本

    2桁の正の整数を乱数により発生させ,その数の逆数を求める関数 reciprocal() を用意して,逆数を表示するプログラムを作成しましょう.なお,本体のプログラムを以下に示します.

    int main(void)
    {
    	srand((unsigned) time(NULL));
    	
    	int x = rand() % 90 + 10;
    	
    	printf("The reciprocal of %d is %.3f.\n", x, reciprocal(x));
    	
    	return 0;
    }
    

    プロトタイプ宣言の部分は型に注意してください.

    The reciprocal of 69 is 0.014.
    

    解答例

  2. 三項演算子の基本

    2桁の正の整数を乱数を用いて2個発生させ,必ず小さい順に表示するよう,三項演算子を用いて2つの変数の値の入れ替えを行うプログラムを if 文を使用しないで作成しましょう.

    Two random numbers: 22 and 91
    

    解答例

  3. じゃんけんの判定を関数に

    これまでにもじゃんけんの例題を行いましたが,その手を表示する部分 hand() と勝ち負けの判定部分 judge() をそれぞれ関数として別に用意する形式に変更したものを作成しましょう.

    You: Pa
    Computer: Pa
    Aiko
    

    戻り値があるかどうか,考えましょう.

    解答例

  4. 素因数分解

    2桁の正の整数を乱数により2つ発生させ,それらを掛け合わした数の素因数分解を行うプログラムを,素因数分解部分を関数で行う方式で作成しましょう.

    57 x 70 = 3990
    Decomposition into prime numbers: 2 3 5 7 19
    

  5. 値の入れ替え

    教科書p.75のリスト4_2を参考に,2桁の正の整数を乱数により2個発生させ,その小さい方から大きい方の数まで順に表示するプログラムを作成しましょう.

    Two random numbers: 97 72
    72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
    

    小さい方の数を返す min() と,大きい方の数を返す max() を関数にします.三項演算子ですっきり短く書くことができます.


Back to text page