Мой кодusing System;
namespace lab5
{
class Program
{
static void Main()
{
static double SearchAverage(double[] array, int n)
{
double s = 0;
for (int i = 0; i < n; i++)
{
s += array[i];
}
double a = Convert.ToDouble(s / array.Length);
return a;
}
int n;
Console.Write("Введите значение a: ");
double a = double.Parse(Console.ReadLine());
Console.Write("Введите значение b: ");
double b = double.Parse(Console.ReadLine());
Console.Write("Введите размер массива: ");
n = Convert.ToInt32(Console.ReadLine());
double[] numbers = new double [n];
Console.WriteLine("Введите элементы исх. массива: ");
for (int i = 0; i < n; i++)
{
numbers[i] = double.Parse(Console.ReadLine());
}
Console.WriteLine("Элементы исходного массива: ");
for (int i = 0; i < n; i++)
{
Console.Write(numbers[i] + " ");
}
Console.WriteLine("\nЗначение среднего арифметического исх. массива: " + SearchAverage(numbers, n));
double[] n_numbers = new double [n];
int k = 0;
for (int i = 0; i < n; i++)
{
if ((numbers[i] > 0) && (numbers[i] > a) && (numbers[i] < b)){
n_numbers[k] = numbers[i];
}
k++;
}
Console.WriteLine("\nЭлементы нового массива: ");
for (int i = 0; i < n; i++)
{
Console.Write(n_numbers[i] + " ");
}
Console.WriteLine("\nЗначение среднего арифметического нового массива: " + SearchAverage(n_numbers, n));
}
}
}
Мне нужно, чтобы в новом массиве, его длина была равна количеству элементов удовлетворяющих условию, и, чтобы эта длина так же передавалась в SearchAverage, например:
Исходный массив, длиной 5, выглядит так: [12 -1 50 -23 43]; a = 10, b = 45; Среднее арифметическое: 16,2
Тогда новый должен иметь вид [12 43]; Среднее арифметическое: 27,5
Сейчас же у меня и среднее арифметическое нового массива считает с ошибкой из-за длины, и, сам массив выглядит не так, как мне надо. Помогите пожалуйста, после питона одна головная боль с массивами в шарпе..