Помогите найти ошибку
На складе имеется определённое количество ящиков с яблоками (в моем примере 10). Когда подъезжает машина для погрузки, попросить пользователя ввести, сколько ящиков загрузить в первую машину, во вторую и так далее, пока не закончатся ящики с яблоками. Предусмотреть тот случай, когда пользователь введёт количество ящиков больше, чем есть на складе.
#include <iostream>
using namespace std;
int main()
{
int a = 10;
int b = 0;
for (int i = 1; ; i++)
{
cout << "На складе " << a << " ящиков,сколько загрузить в " << i << " машину? ";
cin >> b;
if (b > a)
{
cout << "На складе недостаточно ящиков.\n";
i--;
}
else
{
a -= b;
}
if (a == 0)
{
cout << "Яблоки закончились.";
break;
}
}
return 0;
}
#include <iostream>
using namespace std;
int main() {
int a = 10;
int b = 0;
while (a) {
cout << "Остаток на складе " << a << " ящиков.\n";
cout << "Cколько загрузить в машину? ";
cin >> b;
if (b > a) puts("На складе недостаточно ящиков.");
else a -= b;
if (!a) puts("Яблоки закончились.");
}
}
пустоты перед строчками нет
Программа работает некорректно из-за ошибки в условии выхода из цикла. Необходимо переместить проверку a == 0 и break в конец цикла for.