Int main()
{
num *head, *newList, *last, *current;
int n;
/*
где-то здесь идёт задавание списка, но оно не требуется в задании
*/
return 0;
}
// 15. Данные о книгах (автор, название, количество страниц) хранятся в стеке (односвязный список, добавление в начало).
//Оформить функцию добавления в список. Написать фрагмент программы, выводящий на экран данные о книгах, имеющих более 300 страниц.
#include <iostream>
#include <string>
using namespace std;
struct book
{
string aut;
string name;
int pages;
book *next;
};
void newel(book **head, book **newj, book **curr, book **last)
{
if ((*head) == nullptr)
{
(*newj) = new book;
cout << "Enter author, name and pages" << endl;
cin >> (*newj) -> aut >> (*newj) -> name >> (*newj) -> pages;
cout << endl;
(*head) = (*newj);
(*newj) -> next = nullptr;
(*curr) = (*newj);
(*last) = (*head);
} else
{
(*newj) = new book;
cout << "Enter author, name and pages" << endl;
cin >> (*newj) -> aut >> (*newj) -> name >> (*newj) -> pages;
cout << endl;
(*newj) -> next = (*head);
(*head) = (*newj);
(*curr) = (*newj);
}
}
void quest(book *head)
{
book *i = head;
while (i)
{
if (i -> pages > 300)
{
cout << i -> aut << " " << i -> name << endl;
}
i = i -> next;
}
}
Int main()
{
book *head = nullptr, *last = nullptr, *curr = nullptr, *newj = nullptr;
newel(&head, &newj, &curr, &last);
newel(&head, &newj, &curr, &last);
newel(&head, &newj, &curr, &last);
quest(head);
}
// 18. Написать фрагмент программы, находящий в стеке (односвязном списке, добавление в начало),
//состоящем из n вещественных элементов, среднее значение всех элементов и заменяющий им наименьший элемент.
//Оформить функцию добавления элемента.
#include <iostream>
#include <string>
using namespace std;
struct num
{
float a;
num *next;
};
void newel(int &n, num **head, num **newj, num **curr, num **last)
{
if ((*head) == nullptr)
{
(*newj) = new num;
cout << "Enter number" << endl;
cin >> (*newj) -> a;
cout << endl;
(*head) = (*newj);
(*newj) -> next = nullptr;
(*curr) = (*newj);
(*last) = (*head);
n = 1;
} else
{
(*newj) = new num;
cout << "Enter number" << endl;
cin >> (*newj) -> a;
cout << endl;
(*newj) -> next = (*head);
(*head) = (*newj);
(*curr) = (*newj);
n++;
}
}
void quest(num *head, int n)
{
num *i = head;
double sr = 0;
float min = i -> a;
while (i)
{
sr += i -> a;
if (i -> a < min)
min = i -> a;
i = i -> next;
}
sr /= double(n);
i = head;
while (i)
{
if (i -> a == min)
i -> a = sr;
}
cout << sr << endl;
}
Int main()
{
int n = 0;
num *head = nullptr, *last = nullptr, *curr = nullptr, *newj = nullptr;
newel(n, &head, &newj, &curr, &last);
newel(n, &head, &newj, &curr, &last);
newel(n, &head, &newj, &curr, &last);
quest(head, n);
}
// 19. Данные о продуктах (наименование, цена, срок годности в сутках) хранятся в двусвязном списке.
// Оформить функцию добавления в список. Написать фрагмент программы, выводящий на экран самый дорогой товар,
// срок годности которого не превышает 7 суток.
#include <iostream>
#include <string>
using namespace std;
struct p
{
string name;
int cost;
int days;
p *prev, *next;
};
void add_element(int &n, p **head, p **newList, p **last, p **current)
{
int tmp;
if((*head) != NULL)
{
(*newList) = new p;
//начало ввода
cin >> (*newList) -> name;
cin >> (*newList) -> cost;
cin >> (*newList) -> days;
//конец ввода
(*newList) -> next = NULL;
(*newList) -> prev = (*current);
(*current) -> next = (*newList);
(*last) = (*newList);
(*current) = (*newList);
}
else
{
(*newList) = new p;
//начало ввода
cin >> (*newList) -> name;
cin >> (*newList) -> cost;
cin >> (*newList) -> days;
//конец ввода
(*head) = (*newList);
(*newList) -> next = NULL;
(*newList) -> prev = NULL;
(*current) = (*newList);
(*last) = (*head);
}
n++;
}
void quest(p *head)
{
p *i = head;
int max = 0;
while (i)
{
if (i->days < 8 && i->cost > max)
max = i->cost;
i = i->next;
}
i = head;
while (i)
{
if (i->cost == max)
cout << i->name << endl;
i = i->next;
}
}
