クイズのプログラム

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: クイズのプログラム

Re: クイズのプログラム

#8

by かずま » 6年前

const char *question[DIFFICULTY][GENRE][QUESTION] = { は、
const char *question[GENRE][DIFFICULTY][QUESTION] = { の間違いですね。
GENRE も DIFFICULTY も 2 だったので、気が付きませんでした。
適当に作ったので、他にも変なところがあるでしょう。

Re: クイズのプログラム

#7

by かずま » 6年前

int a[QUESTION]; は int a; で十分で、
その場合、a は a にします。

Re: クイズのプログラム

#6

by かずま » 6年前

ああいあいああ さんが書きました: 使用言語はc++ Compiler5.5、フレームワークはEmbarcadero C/C++ Runtime Library(RTL)、stdio.h
です
クイズの形式としては
タイトル→難易度選択→ジャンル選択(4つ程度)→クイズ(四択問題)5問→結果発表(正解数のみ)
でお願いします
Embarcadero C/C++ Runtime Library(RTL)というのは、
GUI(Graphical User Interface) のライブラリじゃないようですね。
stdio.h ということは、CUI (Character User Interface) ですか?

コード:

#include <stdio.h>

#define GENRE      2
#define DIFFICULTY 2
#define QUESTION   3

const char *question[DIFFICULTY][GENRE][QUESTION] = {
    {  // 算数
        { // 易しい
            "2 + 3 = ?  (1) 4  (2) 5  (3) 6", 
            "7 - 4 = ?  (1) 3  (2) 11  (3) 28",
            "5 x 9 = ?  (1) 4  (2) 14  (3) 45",
        }, { // 難しい
            "1/2 + 1/3 = ?  (1) 1/5  (2) 1/6  (3) 5/6",
            "2/3 x 5/3 = ?  (1) 7/3  (2) 10/9  (3) 2/5",
            "5/9 ÷ 1/3 = ?  (1) 5/3  (2) 3/5  (3) 5/23",
        }
    }, { // 漢字
        { // 易しい
            "詳細は ?  (1) ようさい  (2) しょうさい  (3) くわほそ",
            "凡例は ?  (1) ぼんれい  (2) ふうれい  (3) はんれい",
            "忖度は ?  (1) すんど  (2) ひじたび  (3) そんたく",
        }, { // 難しい
            "脆弱は ?  (1) きじゃく  (2) ぜいじゃく  (3) もろよわ",
            "忸怩は ?  (1) じくじ  (2) うしあま  (3) こうでい",
            "顰蹙は ?  (1) ほせき  (2) いやあし  (3) ひんしゅく",
        }
    }
};

int answer[GENRE][DIFFICULTY][QUESTION] = {
    { // 算数
        { 2, 1, 3 }, { 3, 2, 1 }  // 易しい, 難しい
    }, { // 漢字
        { 2, 3, 3 }, { 2, 1, 3 }  // 易しい, 難しい
    }
};

int input(const char *message, int n)
{
    int i;
    printf("\n%s\n>> ", message);
    while (1) {
        if (scanf("%d", &i) != 1) return 0;
        if (i >= 1 && i <= n) break;
        printf("再入力>> ");
    }
    return i;
}

int main(void)
{
    int g, d, a[QUESTION], count = 0;

    puts(" ****************\n"
         " *   三択問題   *\n"
         " ****************");
    g = input("ジャンルは? 1. 算数, 2. 漢字", GENRE);
    if (g == 0) return 1;
    d = input("難易度は? 1. 易しい, 2. 難しい", DIFFICULTY);
    if (d == 0) return 2;
    g--, d--;
    printf("%d問出題されます。", QUESTION);
    for (int i = 0; i < QUESTION; i++) {
        printf("[%d] ", i+1);
        a[i] = input(question[g][d][i], QUESTION);
        if (a[i] == 0) return 3;
        if (a[i] == answer[g][d][i]) {
            puts("正解");
            count++;
        }
        else
            printf("残念。正解は %d です\n", answer[g][d][i]);
    }
    printf("\n正解数は %d です\n", count);
    return 0;
}
参考になるのかならないのか、返事をお待ちします。

問題と解答をファイルから入力するように変更すれば、
プログラムを毎回コンパイルしなおさなくてもよくなりますね。

Re: クイズのプログラム

#5

by Math » 6年前

Re: クイズのプログラム

#4

by Math » 6年前

>使用言語はc++ Compiler5.5、フレームワークはEmbarcadero C/C++ Runtime Library(RTL)、stdio.h
です

とはエンバカデロ・テクノロジーズ社が提供されているフリーのコンパイラBorland C++ Compiler 5.5の事でしょうか。[VersionはEmbarcadero C++ 7.30 for Win32 Copyright (c) 2012-2017 Embarcadero Technologies, Inc.]

https://www.embarcadero.com/jp/free-too ... free-tools

[BCC32コンパイラは、エンバカデロのC++Builder製品ファミリーで利用されているC++コンパイラのルーツとなるコマンドラインコンパイラです。
C++コンパイラの無料ダウンロード版には、C++11言語サポート、Dinkumware STL(Standard Template Library)フレームワーク、Embarcadero C/C++ Runtime Library(RTL)が含まれています。この無料バージョンには、ハイパフォーマンスリンカやリソースコンパイラなどのいくつかのC/C++コマンドラインツールも含まれています。]

とありますが(^^;。

Re: クイズのプログラム

#3

by ああいあいああ » 6年前

すみませんでした
使用言語はc++ Compiler5.5、フレームワークはEmbarcadero C/C++ Runtime Library(RTL)、stdio.h
です
クイズの形式としては
タイトル→難易度選択→ジャンル選択(4つ程度)→クイズ(四択問題)5問→結果発表(正解数のみ)
でお願いします

Re: クイズのプログラム

#2

by みけCAT » 6年前

  • 使用するプログラミング言語、ライブラリ/フレームワーク、プラットフォーム
  • クイズの種類(4択、自由記入など)
など、もう少し仕様を絞っていただけますか?

クイズのプログラム

#1

by ああいうあうい » 6年前

クイズを作りたいと思い、ネットで検索したのですがほとんどがDXライブラリ専用のソースコードでどれがどれかさっぱりです
一回完成したプログラムを見たいです
ジャンル選択、難易度選択を行った後クイズができるプログラムを教えてください

ページトップ