納得C言語!
演習問題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以外の数値なので不正解となります。