プログラミング基礎 第7回課題解説

課題

例題プログラムを参考にして, 整数 7 と 2 の足し算,引き算,掛け算,割り算および剰余 の計算結果を,以下の書式にしたがって表示するプログラム (ファイル名は calc.c)を作成せよ. 但し,7 と 2 という数値は文字列中も含め プログラム中に各1回のみ記述できる ものとする.

実行例:

tusedls01$ ./a.out[Enter]
7 + 2 = 9
7 - 2 = 5
7 * 2 = 14
7 / 2 = 3
7 % 2 = 1
(ヒント: printf関数で % 記号を出力する際は, 変換仕様と解釈されないように, %% と重ねて書く必要があります)

解説

5通りの計算の結果を, printf 関数を使って指定されたフォーマットで出力すれば良い. 但し, 「7 と 2 という数値はプログラム中に各1回のみ記述できる」 という条件を満たすためには, これらの値を変数に保存(または文字定数として定義)しておく必要がある.

なお,与えられた数値は各人で異なるので, 以下の解答例では数値の部分を適宜読み替えること.

解答例その1

変数3つを使ったオーソドックスな例.

#include <stdio.h>

int main(void)
{
    int x, y, z;

    x = 7;	/* 変数 x を初期化 */
    y = 2;	/* 変数 y を初期化 */

    z = x + y;  /* 足し算 */
    printf("%d + %d = %d\n", x, y, z);

    z = x - y;  /* 引き算 */
    printf("%d - %d = %d\n", x, y, z);

    z = x * y;  /* 掛け算 */
    printf("%d * %d = %d\n", x, y, z);

    z = x / y;  /* 割り算 */
    printf("%d / %d = %d\n", x, y, z);

    z = x % y;  /* 剰余 */
    printf("%d %% %d = %d\n", x, y, z);

    return (0);
}

解答例その2

変数の宣言と初期化を一度に済ませるとプログラムが少し短くなる. さらに printf 関数の引数に直接式を書けば, 結果を保存する変数 z も不要となる.
#include <stdio.h>

int main(void)
{
    int x = 7, y = 2;

    printf("%d + %d = %d\n", x, y, x + y); 	/* 足し算 */
    printf("%d - %d = %d\n", x, y, x - y); 	/* 引き算 */
    printf("%d * %d = %d\n", x, y, x * y); 	/* 掛け算 */
    printf("%d / %d = %d\n", x, y, x / y); 	/* 割り算 */
    printf("%d %% %d = %d\n", x, y, x % y); 	/* 剰余 */

    return (0);
}

戻る