Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
rappu
0 / 0 / 0
Регистрация: 17.11.2014
Сообщений: 2
#1

Удаление элементов из списка - C++

17.11.2014, 13:55. Просмотров 770. Ответов 3
Метки нет (Все метки)

Товарищи, прошу о помощи!
Задание такое: создать список из целых чисел. Удалить лишние элементы в списке так, чтобы в результирующем списке каждый элемент был не меньше среднего арифметического всех элементов, следующих за ним.
Решить требуется очередью. Ввод вывод данных файловый.
Дошёл в общем-то до этого:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <stdafx.h>
#include <fstream>
#include <iostream>
#include <queue.cpp> //сам класс очереди//
using namespace std;
int main()
{
    int i, k=0;
    double sum=0;
    Queue <int> t;
    ifstream in("input.txt");
    ifstream in1("input.txt");
    ofstream out("output.txt");
    while(in1>>i)
        {
            sum+=i;
            k++;
        }
    in1.close();
    while (in>>i)
    {
        sum-=i;
        k--;
        if(i>=sum/k||k==0)
            t.Put(i);
    }
    in.close();
    while(!t.Empty())
    {
        out<<t.Get()<<" ";
    }
    out.close();
    return 0;
}
Понимаю, в чём ошибка и почему работает не совсем правильно, но сделать как надо у меня не получается. Помогите пожалуйста! Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2014, 13:55     Удаление элементов из списка
Посмотрите здесь:

Удаление элементов из списка - C++
помогите пожалуйста)))написать процедуру , которая удаляет: а)из списка L за каждым вхождением элемента Е один элемент, если такой есть...

Удаление элементов из списка - C++
Помогите. Не представляю, как удалять элементы из списка. А уже скоро нужно сдавать( Помогите, кто чем может... struct Book { ...

Удаление элементов из списка - C++
Здравствуйте. Есть такая программа, не могу сделать удаление элемента из списка, помогите пожалуйста. #include &lt;iostream&gt; #include...

Удаление элементов из списка - C++
Подскажите как у

Удаление элементов списка - C++
Есть двунаправленный список, функция которая при повторении двух подряд одинаково парных чисел суммирует их, записывает в один элемент а...

Удаление элементов из списка - C++
Доброго всем времени суток! в универе начали проходить динамические структуры, дошли до списков. Дали задание составить динамический...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mss307
118 / 118 / 25
Регистрация: 14.12.2013
Сообщений: 352
17.11.2014, 14:51     Удаление элементов из списка #2
Цитата Сообщение от rappu Посмотреть сообщение
C++
1
2
3
4
sum-=i; 
k--; 
if(i>=sum/k||k==0) 
t.Put(i);
среднее арифметическое здесь не надо пересчитывать.
C++
1
2
if(i>=sum/k) 
   t.Put(i);
Добавлено через 1 минуту
а вообще можно воспользоваться стандартной очередью, куда сразу загнать все числа, а дальше воспользоваться std::erase_if(начало, конец, условие).
rappu
0 / 0 / 0
Регистрация: 17.11.2014
Сообщений: 2
17.11.2014, 19:20  [ТС]     Удаление элементов из списка #3
Почему не надо пересчитывать? Мы меняем число => и числа следующие за ним будут другими => среднее арифметическое тоже надо пересчитывать. А вообще можно просто записать в очередь этот список в обратном порядке и задачу точно таким же образом решить, только вот придётся использовать что-то ещё, а этого не разрешает преподаватель. std::erase_if(начало, конец, условие) - мы не изучали, поэтому использовать тоже нельзя. А за ответ спасибо!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2014, 15:28     Удаление элементов из списка
Еще ссылки по теме:

Удаление элементов из списка - C++
Создать список. Потом удалить из него все отрицательные элементы. Если можно с комментариями некоторых действий) кстати сдавать программу...

Удаление элементов из списка - C++
struct List { int data; List *next; }; typedef List* ListPtr; void InsertHead(ListPtr &amp; h, int a); void showList(ListPtr...

Удаление элементов из списка - C++
Дан список L, состоящий из записей: первое поле – вещественное число, второе – адрес следующего элемента. Составить программу, которая...

Удаление элементов из связного списка - C++
Здравствуйте! Совсем недавно начала изучать связные списки, пока понимания мало, но, надеюсь, со временем уясню этот материал. Появилась...

Удаление повторяющихся элементов из списка - C++
Всем привет! Прошу помощи, надо написать функцию удаления всех повторяющихся элементов из списка. Например надо получить из a b g c d a b c...

Добавление и удаление элементов из двусвязного списка - C++
Разбираю списки. Посмотрите код правильно ли я все понимаю?))) путаюсь с указателями. может можно проще чтото сделать? struct st { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
mss307
118 / 118 / 25
Регистрация: 14.12.2013
Сообщений: 352
18.11.2014, 15:28     Удаление элементов из списка #4
Цитата Сообщение от rappu Посмотреть сообщение
Почему не надо пересчитывать?
потому что обычно подобные задачи подразумевают, что сначала один раз считается среднее арифметическое, а дальше уже с ним сравниваются все значения (среднее арифметическое при этих сравнениях не меняется).
Yandex
Объявления
18.11.2014, 15:28     Удаление элементов из списка
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru