Stack Overflow на русском Asked on November 3, 2020
Дан одномерный массив. Найти среднее арифметическое его элементов. Вывести на экран только те элементы массива, которые больше найденного среднего арифметического. В методе 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();
}
Можно с помощью 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();
}
Answered by aepot on November 3, 2020
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP