powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Проблема с циклом
4 сообщений из 4, страница 1 из 1
Проблема с циклом
    #38512411
rigals963
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!
Объясните пожалуйста почему в строке while(kol_left != N+1) выражение сравнивают не c N вагонов а с N+1 (для чего это нужно)

#include <iostream>
#include <iomanip>
#include <windows.h>
using namespace std;

void show(int vagon)
{
switch(vagon)
{
case 0: cout<<"==="; break;
case 1: cout<<"[ ]"; break;
case 2: cout<<"[*]"; break;
case 3: cout<<" | "; break;
}
}

int main()
{
system("mode con cols=130 lines=45");
srand((unsigned) time(NULL));
int N, *right, *left, *tupik, i, j, kol_left = 0, kol_tupik = 0, kol_right = 0;

cout<<"Set the number of wagon: "<<endl;
cin>>N;
//[ ] - белый,[*] - черный
right = new int[N];
left = new int[N];
tupik = new int[N * 2];

for (i = 0; i < N; i++)
{
left[i] = 0;
right[i] = 1;
tupik[i] = 3;
}
i = 0;
cout<<"Specify the number of the black wagon: ";
while(i != N / 2)
{
cout<<"Remaining:"<<N / 2 - i<<endl;
cin>>j;
//j++;
if (right[j - 1] != 2 && (j - 1) < N && j != 1) {right[j - 1] = 2; i++;}
else cout<<"Incorrectly!";
}
system("pause");
system("cls");

while(kol_left != N+1)
{
for (i = 0; i < N; i++)
show(left[i]);
cout<<" X ";
for (i = 0; i < N; i++)
show(right[i]);
for (i = N-1; i >= 0; i--)
{
cout<<endl<<setw(N * 3 + 3);
show(tupik[i]);
}
if (tupik[kol_tupik - 1] != left[kol_left - 1] && (tupik[kol_tupik - 1] == 1 || tupik[kol_tupik - 1] == 2)) {left[kol_left] = tupik[kol_tupik - 1]; tupik[kol_tupik - 1] = 3; kol_left++; kol_tupik--;}
else if (right[kol_right] != left[kol_left - 1]) {left[kol_left] = right[kol_right]; right[kol_right] = 0; kol_left++; kol_right++;}
else {tupik[kol_tupik] = right[kol_right]; right[kol_right] = 0; kol_tupik++; kol_right++;}
system("pause");
system("cls");
}
cout<<"All true!"<<endl;
system("pause");
}
...
Рейтинг: 0 / 0
Проблема с циклом
    #38512423
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rigals963почему в строке while(kol_left != N+1) выражение сравнивают не c N вагонов
а с N+1 (для чего это нужно)
Чтобы цикл выполнился и для последнего вагона, которые считаются с единицы.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проблема с циклом
    #38512430
rigals963
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое за помощь и быстрый ответ
...
Рейтинг: 0 / 0
Проблема с циклом
    #38512441
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда сомневаешься в циклах, выполняй их сам, загибая пальцы. Точно увидишь как
соответствует условие и количество выполнений.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Проблема с циклом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]