В методе Main должно быть только объявление массива и не более одной Int переменной
Дан одномерный массив. Найти среднее арифметическое его элементов. Вывести на экран только те элементы массива, которые больше найденного среднего арифметического. В методе Main должно быть только объявление массива и не более одной int переменной.
Код уже есть, не знаю как сделать вторую часть задания.
static void Main(string[] args)
{
uint size;
size = uint.Parse(Console.ReadLine());
int[] arr = new int[size];
float sum = 0.0f;
for (uint i = 0; i < size; ++i)
{
arr[i] = int.Parse(Console.ReadLine());
sum += arr[i];
}
sum /= size;
for (uint i = 0; i < size; ++i)
{
if (arr[i] > sum)
{
Console.Write(arr[i]);
}
}
Console.ReadKey();
}
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
Можно с помощью Linq
static void Main(string[] args)
{
int[] arr = new int[int.Parse(Console.ReadLine())].Select(x => int.Parse(Console.ReadLine())).ToArray();
int sum = arr.Aggregate(0, (x, y) => x + y);
Console.WriteLine(string.Join(" ", arr.Where(x => x > (float)sum / arr.Length)));
Console.ReadKey();
}
А если по-простому, то вот так
static void Main(string[] args)
{
int[] arr = new int[int.Parse(Console.ReadLine())];
int sum = 0;
for (int i = 0; i < arr.Length; ++i)
{
arr[i] = int.Parse(Console.ReadLine());
sum += arr[i];
}
for (int i = 0; i < arr.Length; ++i)
{
if (arr[i] > (float)sum / arr.Length)
{
Console.Write(arr[i] + " ");
}
}
Console.ReadKey();
}