Счетчик C ++ не сбрасывается после каждой строки - PullRequest
0 голосов
/ 01 апреля 2020

Я - новичок в C ++, и меня смущает, почему мой счетчик не сбрасывается и приводит к тому, что все оценки одинаковы, так как они складываются как один большой. Ребята, помогите, пожалуйста, направить меня в правильном направлении. Спасибо

Вот пример того, что я имею в виду

Студент 0 имеет оценку 47/10 Студент 1 имеет оценку 47/10 Студент 2 имеет оценку 47/10 Студент 3 имеет оценку 47/10 Студент 4 имеет оценку 47/10 Студент 5 имеет оценку 47/10 Студент 6 имеет оценку 47/10 Студент 7 имеет оценку 47/10

#include <iostream>
using namespace std;

/*
Key to the Questions
0 1 2 3 4 5 6 7 8 9
D B D C C D A E A D
*/
int main()
{
    const int ROWS = 8;                             // Answer key
    const int COLS = 10;        // D    B    D    C    C    D    A    E    A    D
    char letters[ROWS][COLS] = { {'A', 'B', 'A', 'C', 'C', 'D', 'E', 'E', 'A', 'D'}, // 7
                                {'D', 'B', 'A', 'B', 'C', 'A', 'E', 'E', 'A', 'D'}, // 6
                                {'E', 'D', 'D', 'A', 'C', 'A', 'E', 'E', 'A', 'D'}, // 5
                                {'C', 'B', 'A', 'E', 'C', 'A', 'E', 'E', 'A', 'D'},
                                {'A', 'B', 'E', 'C', 'C', 'A', 'E', 'E', 'A', 'D'},
                                {'B', 'B', 'C', 'C', 'C', 'A', 'E', 'E', 'A', 'D'},
                                {'B', 'B', 'C', 'C', 'C', 'A', 'E', 'E', 'A', 'D'},
                                {'E', 'B', 'C', 'C', 'C', 'A', 'E', 'E', 'A', 'D'} };

    const char ANSWERKEY[COLS] = { 'D', 'B', 'D', 'C', 'C', 'D', 'A', 'E', 'A', 'D' };

    // Loop for displaying submissions
    /*for (int row = 0; row < ROWS; row++)
    {
        for (int col = 0; col < COLS; col++)
        {
            cout << letters[row][col] << " ";
        }
        cout << endl;
    }*/

    // Loop for calculating score
    int studentNum = 0;
    for (int stu = 0; stu < ROWS; stu++)
    {
    int studentScore = 0;

    for (int count = 0; count < COLS; count++)
        {
            if (letters[0][count] == ANSWERKEY[count])
            {
            studentScore++;
            }
            if (letters[1][count] == ANSWERKEY[count])
            {
            studentScore++;
            }
            if (letters[2][count] == ANSWERKEY[count])
            {
            studentScore++;
            }
            if (letters[3][count] == ANSWERKEY[count])
            {
            studentScore++;
            }
            if (letters[4][count] == ANSWERKEY[count])
            {
            studentScore++;
            }
            if (letters[5][count] == ANSWERKEY[count])
            {
            studentScore++;
            }
            if (letters[6][count] == ANSWERKEY[count])
            {
            studentScore++;
            }
            if (letters[7][count] == ANSWERKEY[count])
            {
            studentScore++;
            }

        }

    //Display the results
        cout << "Student " << studentNum << " has a score of " << studentScore << "/10" << endl;
        studentNum++;
        studentScore = 0;
    }

    return 0;
}

1 Ответ

0 голосов
/ 01 апреля 2020

Я думаю, что в таких утверждениях

if (letters[0][count] == ANSWERKEY[count])

вы имеете в виду, по крайней мере,

if (letters[stu][count] == ANSWERKEY[count])

и оставляете только один оператор if. Все остальные должны быть удалены.

И, похоже, вам следует обменяться этими утверждениями

    cout << "Student " << studentNum << " has a score of " << studentScore << "/10" << endl;
    studentNum++;

То есть написать

    studentNum++; 
   cout << "Student " << studentNum << " has a score of " << studentScore << "/10" << endl;
...