Using the STL stack
In a given company an employee receives successive quantities of wheat and puts them in a containers of 20kg .Let us suppose that once a container is full , it is closed and then a new container is used. We want to write a C++ program that stimulate the work of employee . The program will ask the user to enter consecutive quantities of wheat . These quantities will be stored in a stack . Once 20kg of wheat is gathered the existing elements in the stack are removed . The stack will keep only the remaining quantity that could not be put in the container. The program will continue asking to enter new quantities until 5 containers are filled .
1
Expert's answer
2015-06-04T03:35:09-0400
#include <iostream> #include <stack> using namespace std; int main() { stack<int> rest; int containerNumber = 1; int containerSum = 0; int quantity; while (containerNumber <= 5) { cout << "Enter quantity: "; cin >> quantity; rest.push(quantity); quantity = rest.top(); rest.pop(); if (quantity + containerSum <= 20) { containerSum += quantity; } else { rest.push(quantity); } if (containerSum == 20) { cout << "Container " << containerNumber << " is filled." << endl; containerNumber++; containerSum = 0; while (!rest.empty()) { rest.pop(); } } } return 0; }
Good job, but there is an error, if the user entered a number grater
than 20 like 25 the program will never stop asking for a number. it
should be like: if insert 25 container 1: full container 2: 5
Comments
Good job, but there is an error, if the user entered a number grater than 20 like 25 the program will never stop asking for a number. it should be like: if insert 25 container 1: full container 2: 5