Top.Mail.Ru
Ответы

Помогите найти ошибку

На складе имеется определённое количество ящиков с яблоками (в моем примере 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;
}

По дате
По рейтингу
Аватар пользователя
Высший разум
3мес
1234567891011121314
 #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("Яблоки закончились."); 
    } 
} 
Аватар пользователя
Мастер
3мес

пустоты перед строчками нет

Аватар пользователя
Мастер
3мес

Программа работает некорректно из-за ошибки в условии выхода из цикла. Необходимо переместить проверку a == 0 и break в конец цикла for.