#include
int main(void)
{
char buf[1];
int i;
int score = 0; //正解数を記憶しておく変数
printf("四択クイズです\n\n");
do {
printf("元素記号の覚え方、すいへーりーべー…?\a\n");
printf("1:そーですね\t2:おれのふね\n3:わしのふね\t4:ぼくのふね\n");
gets(buf);
sscanf(buf, "%d\n", &i);
if (i == 4) {
printf("正解です!\n\n");
score++; //正解するとスコアを1増やす
}
else if (i == 1 || i == 2 || i == 3) {
printf("残念!正解は「ぼくのふね」ですよ\n");
}
} while (i = 5); //入力値が不正であれば再入力させる
do {
i = 0; //入力値の初期化
printf("次のうち、最も新しい政令指定都市は…?\a\n");
printf("1:新潟市\t2:岡山市\n3:熊本市\t4:相模原市\n");
gets(buf);
sscanf(buf, "%d\n", &i);
if (i == 3) {
printf("正解です!\n\n");
score++;
}
else if (i == 1 || i == 2 || i == 4) {
printf("残念!正解は「熊本市」ですよ\n\n");
}
} while (i = 5);
do {
i = 0;
printf("サンタクロースは何に乗っている…?\a\n");
printf("1:トナカイ\t2:馬\n3:そり\t\t4:牛\n");
gets(buf);
sscanf(buf, "%d\n", &i);
if (i == 3) {
printf("正解です!\n\n");
score++;
}
else if (i == 1 || i == 2 || i == 4) {
printf("残念!サンタクロースが乗っているのは「そり」ですよ\n\n");
}
} while (i = 5);
printf("\nあなたは3問中%d問正解しました\n\a",score);
if (score == 3) //全問正解ならば
printf("おめでとうございます!"); //メッセージを追加する
return 0;
}
勉強の成果確認も兼ねて、何も見ずに作ってみたクイズゲームもどき。case文を使ったほうが良かったのかな…
不正な数字が入力された場合に、ただループするだけでなく「再入力してください」等のメッセージを入れたかったけど
今の自分では無理だった。
次に何か投稿する時はそういう処理も入れたプログラムを載せたい。
一応は初めて作ったゲーム…もどきになるのだから、思い出としてここに残しておく。