У меня есть цикл for, очень простой, в моей программе, и я хочу, чтобы он прошел цикл и что-то делал какое-то минимальное количество раз.Однако цикл просто ... останавливается.Но не переходит к следующей вещи в программе.Например, когда min равно 9, он работает от i = 0 до i = 8, затем останавливается.Он должен выйти из цикла for, но он не выполняет следующую команду печати и не выполняет цикл снова.Это просто останавливается.Программа зависает, абсолютно ничего не делая, насколько я могу судить.Я не понимаю, почему это так.
Функция merged.put (), которую я хочу выполнить, просто помещает x или y в слияние, в зависимости от условия.Эта часть работает.Это лишь малая часть гораздо более крупной программы.sp1, sp2 и объединены все определены в другом месте.
int i;
int x;
int y;
for(i=0; i < min; i++)
{
cout << " here " + convert(i);
x = sp1.get_num(i);
y = sp2.get_num(i);
if(x >= y) {
merged.put(x);
}
else {
merged.put(y);
}
cout << " end" << endl;
}
cout << "out";
РЕДАКТИРОВАТЬ: я не публикую весь код, он длиной в несколько сотен строк.Тип мин. Int.Ответ там был полезен, когда << endl был добавлен к последнему оператору печати, он напечатал.Моя проблема теперь, кажется, здесь, застревает на втором, потому что я не увеличивал i.Позор мне ... спасибо за помощь.(Это сразу после кода выше) </p>
if (sp_large == 2) {
cout << "1" << endl;;
while (i < sp2.get_size()) {
merged.put(sp2.get_num(i));
}
}
else {
while (i < sp1.get_size()) {
merged.put(sp1.get_num(i));
}
cout << "2" << endl;
}
РЕДАКТИРОВАТЬ: Проблема решена, спасибо за помощь.