Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2021, 14:25   #1
AnatolMed
Новичок
Джуниор
 
Регистрация: 25.03.2021
Сообщений: 5
По умолчанию Очередь

В очереди вещественных чисел определить количество элементов, имеющих значения меньше среднего арифметического значения всех элементов и удалить эти элементы. Очередь создал, среднее нашел. Как удалить? Заклинило, понять не могу. Танцы с бубном не первый час.

using System.Collections;
using System.Collections.Generic;
using System.Linq;

namespace Collections
{
class Program
{
static void Main(string[] args)
{// То что дано

static double Size()
{
double num;
while (!double.TryParse(Console.ReadLine( ), out num)) ;
return num;
}
Queue<double> queue = new Queue<double>();
Console.Write("введите сколько буде чисел N: ");
int n = int.Parse(Console.ReadLine());
for (int i = 0; i < n; i++)
{
Console.Write($"введите {i + 1}-е число: ");
queue.Enqueue(Size());
}
Console.WriteLine("Очередь чисел:");
foreach (double e in queue)
{
Console.WriteLine(e);
}
Console.WriteLine();
//Находим сумму
double total = 0;
foreach (double e in queue)
{

total += (double)e;
}
double total1 = total / n;
Console.WriteLine($"Среднeе арифметическое: {total1} " );//среднее арифметическое
Console.WriteLine();

}
}
}
AnatolMed вне форума Ответить с цитированием
Старый 27.03.2021, 16:06   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Добавлять нужные элементы в другую очередь а после переписать исходную
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 27.03.2021, 19:29   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Добавлять нужные элементы в другую очередь
можно и в эту же, главное вовремя остановиться.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 29.03.2021, 08:58   #4
AnatolMed
Новичок
Джуниор
 
Регистрация: 25.03.2021
Сообщений: 5
По умолчанию

Спасибо за ответ. Нашел в это
int queueCount = queue.Count; // запоминаем длину очереди

for (int i = 0; i < queueCount; i++)
{
double currentFirstElement = queue.Dequeue(); // каждый раз удаляем первый элемент в очереди и запоминаем его.

if (currentFirstElement > total1) // если значение этого первого элемента не то, которое нужно удалить,
{
queue.Enqueue(currentFirstElement); // то добавляем этот элемент обратно в очередь (в её конец).
}
}
и переделал
AnatolMed вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
c# одну очередь однозначных чисел, а вторую очередь двузначных чисел. Перемножьте соответственные элементы двух очередей и организуйте третью очередь Maksim221 Фриланс 2 09.06.2018 18:22
Очередь Павел27 Помощь студентам 2 15.04.2016 23:15
Очередь prem1era Общие вопросы C/C++ 0 11.06.2014 20:00
вводим 15 элементов в очередь, затем выводим на экран эту очередь и добавил в очередь еще один элемент. Потом удаляем любой элемен Xumera C++ Builder 2 07.12.2013 13:56
с++ очередь zubber94 Помощь студентам 8 25.07.2012 00:01