#c #arrays #nested-loops #increment
#c #массивы #вложенные циклы #увеличение
Вопрос:
Я пишу цикл для просмотра 3D-массива и отображения содержимого [0][0][0] через [0][2][4]. Он отображает и работает нормально от [0] [0] [0] до [0][0][4], но после этого он переходит к [0][2][0] вместо к [0][1][0]. Я не могу понять, почему это я, если кто-нибудь может исправить мою ошибку.
a, b, c, d и e являются целочисленными переменными. в начале этого цикла я инициализировал b как 0, c как 1, d как 0 и e как 1.
for (int a = 0; a < students;)
{
cout << "Let's help Student #" << e << "!" << endl;
do
{
cout << "Question #" << c << ":" << endl;
cout << math_rooms[0][a][b] << endl;
cin >> math_rooms[0][a][b];
cout << " " << endl;
if (math_rooms[0][a][b] != math_answers[0][a][b])
{
d ;
//Set up the error variable so we keep track of pass/fail
cout << "Sorry, that was incorrect." << endl;
cin >> math_rooms[0][a][b];
cout << " " << endl;
}
else
{
cout << "That's correct!" << endl;
cout << " " << endl;
}
//Increment b and c to go through all questions/keep track of question #.
b , c ;
//Set up loop that checks pass_fail on final question.
if (d >= 3)
{
cout << "Sorry, you failed the test." << endl;
pass_fail = false;
return pass_fail;
}
} while (b < questions);
//restart counter
c = 1;
//Increment a so that it changes to the next student amp; f so that it keeps track of the student #.
a , e ;
}
Таким образом, по сути, цикл работает нормально, пока не увеличит переменную a. Он начинается с 0, а затем, когда он должен увеличиваться до 1, вместо этого он переходит к 2. IDK почему?
Комментарии:
1. Где вы выполняете сброс
b = 0;
?
Ответ №1:
Вам необходимо сбрасывать значение b каждый раз, когда выполняется цикл for
Комментарии:
1. большое вам спасибо! Меня раздражает осознание того, что это было что-то настолько простое, что я продолжал игнорировать.