Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在if/else语句中调用数组的成员_C++_Arrays_If Statement - Fatal编程技术网

C++ 在if/else语句中调用数组的成员

C++ 在if/else语句中调用数组的成员,c++,arrays,if-statement,C++,Arrays,If Statement,我试图写一个if/else语句,对数组的所有成员说“如果随机选择的问题是数组中的第一个,那么就这样做…”等等。但是,它默认选择每个问题作为数组的第一个成员并执行该操作。我怎样才能把它分开呢 if (choice == 1) { enum fields{ QUESTS, ANS_1, ANS_2, ANS_3, ANS_4, NUM_FIELDS }; string QUEST[NUM_QUEST][NUM_FIELDS] =

我试图写一个if/else语句,对数组的所有成员说“如果随机选择的问题是数组中的第一个,那么就这样做…”等等。但是,它默认选择每个问题作为数组的第一个成员并执行该操作。我怎样才能把它分开呢

if (choice == 1)
        {
            enum fields{ QUESTS, ANS_1, ANS_2, ANS_3, ANS_4, NUM_FIELDS };
            string QUEST[NUM_QUEST][NUM_FIELDS] =
            {
                { "What course is this?\n", "A)C++\n", "B)DID\n", "C)Intro to Game\n", "D)Yoga" },
                { "Who am I?\n", "A)Bill\n", "B)Nye\n", "C) 24601\n", "D)No one\n" },
                { "Are you actually reading this?\n", "A) Yes\n", "B)No\n", "C)Maybe\n", "D)Who wants to know?\n" },
                { "Will this program work?\n", "A)Of course it will!\n", "B)It might\n", "C)Are you kidding me?\n", "D)Gods only know." },
                { "Where would I rather be?\n", "A)Home\n", "B)Europe\n", "C)Anywhere but here\n", "D)All of the above\n" }
            };
            srand(static_cast<unsigned int>(time(0)));
            int randomQuest = (rand() % NUM_QUEST);
            string question = QUEST[randomQuest][QUESTS];
            cout << question;
            string printAns1 = QUEST[randomQuest][ANS_1];
            string printAns2 = QUEST[randomQuest][ANS_2];
            string printAns3 = QUEST[randomQuest][ANS_3];
            string printAns4 = QUEST[randomQuest][ANS_4];
            cout << printAns1;
            cout << printAns2;
            cout << printAns3;
            cout << printAns4;
            cout << "\nAnswer:";
            string answer;
            cin >> answer;
if(选项==1)
{
枚举字段{任务、ansu 1、ansu 2、ansu 3、ansu 4、NUM_字段};
字符串任务[NUM_QUEST][NUM_FIELDS]=
{
{“这是什么课程?\n”,“A)C++\n”,“B)DID\n”,“C)游戏介绍\n”,“D)瑜伽”},
{“我是谁?\n”,“A)比尔\n”,“B)奈\n”,“C)24601\n”,“D)没有人\n”},
{“你真的在读这个吗?\n”,“A)是的\n”,“B)不是的\n”,“C)也许\n”,“D)谁想知道?\n”},
{“这个程序会工作吗?\n”,“A)当然会!\n”,“B)可能会\n”,“C)你在开玩笑吗?\n”,“D)只有神知道。”},
{“我宁愿在哪里?\n”,“A)家\n”,“B)欧洲\n”,“C)除了这里以外的任何地方\n”,“D)以上所有\n”}
};
静态施法(时间(0));
int randomQuest=(rand()%NUM_QUEST);
字符串问题=任务[随机任务][任务];

cout您没有发布完整的源代码,所以我只是发布了一个示例,说明了我将如何做到这一点。即使它还有几行,它的可读性也要高得多

#include <stdio.h>
#include <vector>
#include <string>

struct Question
{
    unsigned char answer;
    std::string title;
    std::vector<std::string> options;
};

int main()
{
    std::vector<Question> questions;

    // Define the questions
    Question questionOne;
    Question questionTwo;
    Question questionThree;
    Question questionFour;
    Question questionFive;

    questionOne.answer = 'c';
    questionOne.title = "What course is this?";
    questionOne.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");
    questionOne.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");
    questionOne.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");
    questionOne.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");

    questionTwo.answer = 'a';
    questionTwo.title = "Who am I?";
    questionTwo.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");
    questionTwo.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");
    questionTwo.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");
    questionTwo.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");

    questionThree.answer = 'b';
    questionThree.title = "Are you actually reading this?";
    questionThree.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");
    questionThree.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");
    questionThree.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");
    questionThree.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");

    questionFour.answer = 'c';
    questionFour.title = "Will this program work?";
    questionFour.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");
    questionFour.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");
    questionFour.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");
    questionFour.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");

    questionFive.answer = 'd';
    questionFive.title = "Where would I rather be?";
    questionFive.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");
    questionFive.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");
    questionFive.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");
    questionFive.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");

    // Save them
    questions.push_back(questionOne);
    questions.push_back(questionTwo);
    questions.push_back(questionThree);
    questions.push_back(questionFour);
    questions.push_back(questionFive);

    // Change to a random question accordingly
    for (auto& question : questions)
    {
        // Show question title
        std::cout << question.title << std::endl;

        // Show question options
        for (auto& option : question.options)
        {
            std::cout << option << std::endl;
        }

        // Get the user input accordingly
        unsigned char userInput = 0;

        // Validate user input
        if (userInput == question.answer)
        {
            std::cout << "Congratulations! Next question coming up..." << std::endl;
        }
        else
        {
            std::cout << "Wrong answer. Next question coming up..." << std::endl;
        }
    }

    return 0;
}
#包括
#包括
#包括
结构问题
{
无符号字符应答;
std::字符串标题;
std::向量选项;
};
int main()
{
向量问题;
//定义问题
问题一;
问题二;
问题三;
问题四;
问题五;
问题一:答案为“c”;
问题一.title=“这是什么课程?”;
问题一。选项。推回(“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa”);
问题一。选项。推回(“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa”);
问题一。选项。推回(“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa”);
问题一。选项。推回(“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa”);
问题二:答案为“a”;
问题2.title=“我是谁?”;
问题二。选项。推回(“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
问题二。选项。推回(“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
问题二。选项。推回(“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
问题二。选项。推回(“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
问题三:答案为“b”;
问题3.title=“你真的在读这篇文章吗?”;
问题三。选项。推回(“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
问题三。选项。推回(“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
问题三。选项。推回(“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
问题三。选项。推回(“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
问题4.答案='c';
问题4.title=“该计划有效吗?”;
问题四。选项。推回(“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa”);
问题四。选项。推回(“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa”);
问题四。选项。推回(“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa”);
问题四。选项。推回(“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa”);
问题5.答案='d';
问题5.title=“我宁愿在哪里?”;
问题五。选项。推回(“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa”);
问题五。选项。推回(“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa”);
问题五。选项。推回(“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa”);
问题五。选项。推回(“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa”);
//拯救他们
问题。推回(问题一);
问题。推回(问题二);
问题。推回(问题三);
问题。推回(问题四);
问题。推回(问题五);
//相应地更改为随机问题
用于(自动和问题:问题)
{
//显示问题标题

std::您是否尝试过使用逐步调试程序?请仔细检查您在if语句中使用的数组索引。仔细想想您要将
问题
与哪个值进行比较。只使用代码而不进行解释的回答被认为是不好的回答。@vishal注释以任何方式忽略了此问题的解决方案,因此发布了一个作者的问题也不被认为是一种帮助。他没有发布整个源代码,但即使他发布了,我也不会为他调试它,以发现他忘记包含哪个括号或任何遗漏的std::cin或任何东西。请随意发布,并帮助我们所有人。
#include <stdio.h>
#include <vector>
#include <string>

struct Question
{
    unsigned char answer;
    std::string title;
    std::vector<std::string> options;
};

int main()
{
    std::vector<Question> questions;

    // Define the questions
    Question questionOne;
    Question questionTwo;
    Question questionThree;
    Question questionFour;
    Question questionFive;

    questionOne.answer = 'c';
    questionOne.title = "What course is this?";
    questionOne.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");
    questionOne.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");
    questionOne.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");
    questionOne.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");

    questionTwo.answer = 'a';
    questionTwo.title = "Who am I?";
    questionTwo.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");
    questionTwo.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");
    questionTwo.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");
    questionTwo.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");

    questionThree.answer = 'b';
    questionThree.title = "Are you actually reading this?";
    questionThree.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");
    questionThree.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");
    questionThree.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");
    questionThree.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");

    questionFour.answer = 'c';
    questionFour.title = "Will this program work?";
    questionFour.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");
    questionFour.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");
    questionFour.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");
    questionFour.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");

    questionFive.answer = 'd';
    questionFive.title = "Where would I rather be?";
    questionFive.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");
    questionFive.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");
    questionFive.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");
    questionFive.options.push_back("aaaaaaaaaaaaaaaaaaaaaaaaaaa");

    // Save them
    questions.push_back(questionOne);
    questions.push_back(questionTwo);
    questions.push_back(questionThree);
    questions.push_back(questionFour);
    questions.push_back(questionFive);

    // Change to a random question accordingly
    for (auto& question : questions)
    {
        // Show question title
        std::cout << question.title << std::endl;

        // Show question options
        for (auto& option : question.options)
        {
            std::cout << option << std::endl;
        }

        // Get the user input accordingly
        unsigned char userInput = 0;

        // Validate user input
        if (userInput == question.answer)
        {
            std::cout << "Congratulations! Next question coming up..." << std::endl;
        }
        else
        {
            std::cout << "Wrong answer. Next question coming up..." << std::endl;
        }
    }

    return 0;
}