C++-使用数组

C++ - Working with Arrays

本文关键字:数组 C++-      更新时间:2023-10-16

机动车辆管理局要求您编写一个程序对驾驶执照考试的书面部分进行评分。考试a 20道选择题,其中包含问题1…20的答案分别如下表所示;

A   B   D   A   B   B   B   C   C   D   A   C   C   C   D   A   B   D   D   B

假设每天共有10名学生参加考试。您的程序应将上面显示的正确答案存储在数组中。然后,它应该询问每个学生对20个问题的答案答案应该存储在另一个数组中。答案之后输入时,程序应显示一条消息,指示学生考试及格或不及格。(学生必须正确回答18通过考试的20个问题中的一个)。然后它应该显示正确回答的问题总数和每个学生答错了问题。你的程序应该还显示在给定的白天

#include <iostream>
using namespace std;
int main()
{
    // Declare variables and constants
    int correctAnswers = 0;
    const int QUESTIONS = 20;
    char answers[QUESTIONS] = {'A', 'B', 'D', 'A', 'B', 'B', 'B', 'C', 'C',  'D', 'A', 'C', 'C', 'C', 'D', 'A', 'B', 'D', 'D', 'B'};
    for(int count = 0; count < QUESTIONS; count++)
    {
        cout << "Please enter your answer for Question " << (count + 1) << endl;
        cin >> answers;
    }
    if(answers[0] == 'A')
    {
        correctAnswers++;
    }
    else if(answers[1] = 'B')
    {
        correctAnswers++;
    }
    return 0;
}    

因此,我已经开始为上面列出的问题语句编写这段代码。这就是我到目前为止所拥有的。我开始为每个答案做if语句,如果他们输入了正确的答案,结果会在计数器中加1。我的问题是,有没有更好的方法让用户得到答案并检查他们是否正确,或者我现在所做的是最好的方法?

在规范中,必须将正确答案的列表存储在数组中。每个学生的答案必须保存在数组中。在得到学生的答案后,你可以对答案进行迭代,并将其与预期答案进行比较。

  char correct_answers[QUESTIONS] = {'A', 'B', 'D','A','B', 'B','B','C','C', 'D','A','C' ,'C' , 'C' ,'D' ,'A' ,'B','D', 'D',  'B'};
    char answers[QUESTIONS];
    for(int count = 0; count < QUESTIONS; count++) {
        cout << "Please enter your answer for Question " << (count + 1) << endl;
        cin >> (answers+count);
    }
    for(int count = 0; count < QUESTIONS; count++) {
        if(answers[count] == correct_answers[count]) {
            correctAnswers++;
        }
    }

让我们看看。。你想记住其他东西,而不是答案,因为你会覆盖你设置的答案密钥!

当你看的时候,你会检查答案[count]==来自cin的inputValue。

基本上。。一些伪代码。。

char inputValue;
loop ..
    cin << inputValue;
    answers[count] == inputValue  ...  
        Then ++correctAnswer ...