Создать стек с числами в диапазоне от –50 до +50. После создания стека выполнить индивидуальное задание. В конце работы все стеки должны быть удалены.
Индивидуальное задание: Создать новый стек, содержащий только те числа из первого стека, которые больше среднего значения всех элементов первого стека.
Вот мой код:
using namespace std;
struct Stack
{
int info;
Stack (*next);
}*begin1;
Stack* InStack(Stack*, int);
void View(Stack*);
void mima(Stack*);
int main()
{
int i;
for (i = 1; i <= 101; i++)
{
begin1 = InStack(begin1, rand() % 101 - 50);
}
View(begin1);
mima(begin1);
getchar();
}
Stack* InStack(Stack *p, int in){
Stack *t = new Stack;
t->info = in;
t->next = p;
return t;
}
void View(Stack *p)
{
Stack *t = p;
while (t != NULL)
{
cout « t->info « "\n";
t = t->next;
}
}
void mima(Stack *p)
{
Stack *temp = p;
int sum = 0, num = 0;
cout « endl;
while (temp != NULL)
{
num++;
sum += temp->info;
temp = temp->next;
}
sum /= num;
temp = p;
cout « "Count=" « sum « endl;
}
#include <iostream>
using namespace std;
struct Stack {
int info;
Stack (*next);
} *begin1, *second;
Stack *InStack(Stack *, int);
void View(Stack *);
void mima(Stack *, int &);
Stack *moreAverage(Stack *p, Stack *&second, int average);
int main() {
int i; int average = 0;
for (i = 1; i <= 101; i++) {
begin1 = InStack(begin1, rand() % 101 - 50);
}
View(begin1);
mima(begin1, average);
cout << "average = " << average << endl;
moreAverage(begin1, second, average);
View(second);
}
Stack *moreAverage(Stack *p, Stack *&second, int average){
Stack *t;
while (p != NULL){
if(p->info > average){
Stack *tmp = new Stack;
tmp->info = p->info;
if(second == NULL){
second = tmp;
t = second; // запоминаем начало для нового списка
} else{
// добавляем новые элементы
second ->next = tmp;
second = second ->next;
}
}
p = p->next;
}
second = t; // возвращаем указатель на начало, так как сейчас сылается на конец списка
}
Stack *InStack(Stack *p, int in) {
Stack *t = new Stack;
t->info = in;
t->next = p;
return t;
}
void View(Stack *p) {
Stack *t = p;
while (t != NULL) {
cout<< t->info << "\n";
t = t->next;
}
}
void mima(Stack *p, int &average) {
Stack *temp = p;
int sum = 0, num = 0;
cout << endl;
while (temp != NULL) {
num++;
sum += temp->info;
temp = temp->next;
}
sum /= num;
average = sum;
temp = p;
cout << "Count=" << sum << endl;
}
вывод
-21 -15 7 8 17 -25 19 -3 -6 -7 -1 36 14 -11 -8 -42 11 -33 -3 -1 37 -35 -4 -10 -4 18 13 -19 13 19 7 15 12 -24 6 -35 -45 28 -11 43 45 22 3 -14 38 29 50 -34 48 -32 -25 35 27 9 26 33 8 -27 -17 28 24 -38 -20 38 33 -3 30 17 31 -42 11 21 -1 -37 -28 11 29 -33 12 11 -23 49 25 -1 -45 -46 25 13 -21 -27 -13 19 28 -39 22 -35 -31 -9 -19 15 -9
Count=1 average = 1
7 8 17 19 36 14 11 37 18 13 13 19 7 15 12 6 28 43 45 22 3 38 29 50 48 35 27 9 26 33 8 28 24 38 33 30 17 31 11 21 11 29 12 11 49 25 25 13 19 28 22 15
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Добрый день, есть такой код, переводящий число из 10-й системы в 2-ю
Я недавно узнал, что можно проверять программу на предмет утечки памяти через метод _CrtDumpMemoryLeaks();Т
Как добавить ActionBar в ListActivity и сделать в нем SearchWidget, вернее выполнить поиск элементов по списку(как поиск в плей маркете)?
Все статьи про OAuth2, которые хоть как-то упоминают Standalone говорят лишь "перехватите как-нибудь код авторизации и отправьте POST запрос для получения...