Напишите программу для хранения информации о книгах (Автор, количество) в стеке.
Программа должна запрашивать ввод информации о пяти книгах с клавиатуры и сохранять в стеке.
Напишите функцию удаления элемента стека.
Программа должна вывести содержимое стека и вершину стека, спросить, сколько элементов необходимо удалить, удалить указанное количество элементов из стека и вывести содержимое стека и вершину стека.
Очистить память и вывести содержимое стека.
Пример ввода и вывода:
Введите автора: Пушкин
Введите количество: 1
Введите автора: Лермонтов
Введите количество: 2
Введите автора: Блок
Введите количество: 3
Введите автора: Есенин
Введите количество: 4
Введите автора: Бунин
Введите количество: 5
==================
Бунин 5
Есенин 4
Блок 3
Лермонтов 2
Пушкин 1
Вершина стека: Бунин 5
Сколько элементов удалить? 3
==================
Лермонтов 2
Пушкин 1
Вершина стека: Лермонтов 2
==================
C/C++
Задачка по c++
```c++
#include <iostream>
#include <stack>
#include <string>
struct Book {
std::string author;
int quantity;
};
void deleteFromStack(std::stack<Book>& s, int n) {
for (int i = 0; i < n; i++) {
s.pop();
}
}
int main() {
std::stack<Book> bookStack;
// Запрос информации о пяти книгах и добавление их в стек
for (int i = 0; i < 5; i++) {
Book book;
std::cout << "Введите автора: ";
std::cin >> book.author ;
std::cout << "Введите количество: ";
std::cin >> book.quantity;
bookStack.push(book);
}
// Вывод содержимого стека и вершины стека
std::cout << "==================" << std::endl;
std::cout << "Содержимое стека:" << std::endl;
while (!bookStack.empty()) {
Book book = bookStack.top ();
std::cout << book.author << " " << book.quantity << std::endl;
bookStack.pop();
}
std::cout << "Вершина стека: " << bookStack.top ().author << " " << bookStack.top ().quantity << std::endl;
// Удаление элементов из стека
int n;
std::cout << "Сколько элементов удалить? ";
std::cin >> n;
deleteFromStack(bookStack, n);
// Вывод содержимого стека и вершины стека после удаления элементов
std::cout << "==================" << std::endl;
std::cout << "Содержимое стека после удаления элементов:" << std::endl;
while (!bookStack.empty()) {
Book book = bookStack.top ();
std::cout << book.author << " " << book.quantity << std::endl;
bookStack.pop();
}
std::cout << "Вершина стека: " << bookStack.top ().author << " " << bookStack.top ().quantity << std::endl;
return 0;
}
```
#include <iostream>
#include <stack>
#include <string>
struct Book {
std::string author;
int quantity;
};
void deleteFromStack(std::stack<Book>& s, int n) {
for (int i = 0; i < n; i++) {
s.pop();
}
}
int main() {
std::stack<Book> bookStack;
// Запрос информации о пяти книгах и добавление их в стек
for (int i = 0; i < 5; i++) {
Book book;
std::cout << "Введите автора: ";
std::cin >> book.author ;
std::cout << "Введите количество: ";
std::cin >> book.quantity;
bookStack.push(book);
}
// Вывод содержимого стека и вершины стека
std::cout << "==================" << std::endl;
std::cout << "Содержимое стека:" << std::endl;
while (!bookStack.empty()) {
Book book = bookStack.top ();
std::cout << book.author << " " << book.quantity << std::endl;
bookStack.pop();
}
std::cout << "Вершина стека: " << bookStack.top ().author << " " << bookStack.top ().quantity << std::endl;
// Удаление элементов из стека
int n;
std::cout << "Сколько элементов удалить? ";
std::cin >> n;
deleteFromStack(bookStack, n);
// Вывод содержимого стека и вершины стека после удаления элементов
std::cout << "==================" << std::endl;
std::cout << "Содержимое стека после удаления элементов:" << std::endl;
while (!bookStack.empty()) {
Book book = bookStack.top ();
std::cout << book.author << " " << book.quantity << std::endl;
bookStack.pop();
}
std::cout << "Вершина стека: " << bookStack.top ().author << " " << bookStack.top ().quantity << std::endl;
return 0;
}
```
#include
#include
#include
using namespace std;
template
T input(istream& inp, const char* msg) {
cout > value;
cin.ignore(0x1000, '\n');
return value;
}
struct Writer {
unsigned count;
string name;
Writer() : count(0) {}
private:
friend istream& operator>>(istream& inp, Writer& writer) {
writer.name = input(inp, "Введите автора: ");
writer.count = input(inp, "Введите количество: ");
return inp;
}
friend ostream& operator
Похожие вопросы
- Мне нужна помощь с одной задачкой по c++.
- Помогите с задачкой по C++
- Простая задачка на c++
- Задачка на C++ на формирование массива из 10 записей
- Помогите пожалуйста решить задачку по C++, напишите полный текст кода пожалуйста
- Помогите с задачкой по C++ пожалуйста
- Очень нужна помощь. нужен код на C. Задачка будет в описании.
- Помогите пожалуйста решить задачки c++
- Помогите решить задачки C++
- Помогите решить задачку c++.