ほぷしぃ

納得C言語!

[第8回]演習問題U 第1問の解答

演習問題U 第1問の解答


1 数当てゲーム

解答プログラム

#include <stdio.h>

// プロトタイプ宣言
int hantei(int l,int s);

int main()
{
    int i = 0 ,s = 0 ,l = 0 ,a = 0;
    printf("数値を入力してください==>");
    scanf("%d",&s);
    printf("数当てゲーム!チャンスは10回!\n");

    //10回繰り返す
    for(i=0;i<10;i++){
        printf("数値を入力!==>");
        scanf("%d",&l);

        //自作関数hantei の呼び出し
        a = hantei(s,l);

        //もしa==0ならばbreakで抜ける
        if(a == 0){
          break;
        }
    }

    //a != 0 ならば以下の処理を行う
    if(a != 0){
        printf("残念!正解の数値は%dです\n",s);
    }

    return 0;
}

//判定部分
int hantei(int s,int l)
{
    //lよりsが大きければ
    if(l < s){
        printf("正解の数値は大きいです\n");
        //戻り値として1を返す
        return 1;
    }

    //lよりsが小さければ
    if(l > s){
        printf("正解の数値は小さいです\n");
        //戻り値として2を返す
        return 2;
    }

    //lとsが同じならば
    if(l==s){
        printf("大正解です!\n");
        //戻り値として0を返す
        return 0;
    }
}

解説

まず正解の数値を入力します。
次に、10回繰り返すのでfor文を使用し10未満で終了します。
<=では11回、回してしまうので注意しましょう。
次に自作関数hanteiへ正解と入力された数値を引数にして渡します。
hanteiでは正解と入力された数値を比較し、大きいか小さいか同じかで返す数値を変えています。
最後にmain文で正解(a=0)であればfor文から抜けてしまいます。
for文で10回判定しても正解でない場合、aは0以外の数値なので不正解となります。


ヒント ページのトップ 第2問