1) В заданном массиве Х(N) замените нулями все отрицательные компоненты, непосредственно предшествующие его максимальной компоненте (первой по порядку, если их несколько). 2) В заданном массиве A(N) вычислите среднее геометрическое и среднее арифметическое значения для положительных элементов.
Нужны готовые коды на c#
Задача 1:
using System;
using System.Linq;
namespace ConsoleApp1
{
internal class Program
{
private static void Main(string[] args)
{
Console.Write("Enter n: ");
int n = int.Parse(Console.ReadLine());
var x = new int[n];
var rand = new Random();
for (int i = 0; i < n; i++)
{
x[i] = rand.Next(-100, 100);
Console.WriteLine($"x[{i}] = {x[i]}");
}
int max = x.Max();
int index = Array.IndexOf(x, max);
for (int i = 0; i < index; i++)
{
if (x[i] < 0)
x[i] = 0;
}
Console.WriteLine("\nResult:");
for (int i = 0; i < n; i++)
Console.WriteLine($"x[{i}] = {x[i]}");
}
}
}
Задача 2:
using System;
using System.Linq;
namespace ConsoleApp2
{
internal class Program
{
private static void Main(string[] args)
{
Console.Write("Enter n: ");
int n = int.Parse(Console.ReadLine());
var a = new int[n];
var rand = new Random();
for (int i = 0; i < n; i++)
{
a[i] = rand.Next(-100, 100);
Console.WriteLine($"x[{i}] = {a[i]}");
}
int[] positiveItems = a.Where(t => t > 0).ToArray();
if (positiveItems.Length == 0)
{
Console.WriteLine("No positive numbers");
return;
}
int sum = positiveItems.Sum();
int product = positiveItems.Aggregate((x, y) => x * y);
double arithmeticMean = sum / (double)positiveItems.Length;
double geometricMean = Math.Pow(product, 1 / (double)positiveItems.Length);
Console.WriteLine($"\nArithmetic mean: {arithmeticMean}");
Console.WriteLine($"Geometric mean: {geometricMean}");
}
}
}