Найти среднее арифметическое в векторе - C#
Формулировка задачи:
Среднее арифметическое ненулевых элементов, стоящих после отрицательных элементов
как сделать это лучше
class Program
{
static void input_arr(out int []arr)
{
Console.Write("ввод длины вектора:");
int n = int.Parse(Console.ReadLine());
arr = new int[n];
Random rand = new Random();
for (int i = 0; i < arr.Length; i++)
arr[i] = rand.Next(-25, 26);
}
static void getaverage (int []arr,out int average)
{
int sum = 0, count = 0;
for (int i = 1; i < arr.Length; i++)
if (arr[i] > 0 & arr[i - 1] < 0)
{
count++;
sum += arr[i];
}
average = sum / count;
}
static void output_arr(int []arr)
{
foreach (int item in arr)
Console.Write("{0} ", item);
}
static void Main(string[] args)
{
int[] array;
int average;
input_arr(out array);
getaverage(array, out average);
output_arr(array);
Console.WriteLine("\nсреднее арифметическое элементов:{0}", average);
}
}Решение задачи: «Найти среднее арифметическое в векторе»
textual
Листинг программы
using System;
class Program
{
static int[] input_arr(int n)
{
int[] arr = new int[n];
Random rand = new Random();
for (int i = 0; i < arr.Length; i++)
arr[i] = rand.Next(-25, 26);
return arr;
}
static double getaverage(int[] arr)
{
int sum = 0, count = 0;
for (int i = 1; i < arr.Length; i++)
if (arr[i] != 0 & arr[i - 1] < 0) //это если нужно учитывать отрицательные, стоящие после отрицательных
{
count++;
sum += arr[i];
}
return (double)sum / count; //среднее - вещественное значение
}
static void output_arr(int[] arr)
{
foreach (int item in arr)
Console.Write("{0} ", item);
}
static void Main(string[] args)
{
Console.Write("ввод длины вектора:");
int n = int.Parse(Console.ReadLine());
int[] array = input_arr(n);
double average = getaverage(array);
output_arr(array);
Console.WriteLine("\nсреднее арифметическое элементов:{0}", average);
}
}