
Вариант 17
Random rnd = new Random();
int n = rnd.Next(5, 14);
double[] a = new double[n];
// Создать и вывести на экран исходный массива
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Исходный массив");
Console.ForegroundColor = ConsoleColor.Red;
for (int i = 0; i < n; i++)
{
Console.Write("{0,6}", i);
}
Console.WriteLine();
Console.ForegroundColor = ConsoleColor.White;
for (int i = 0; i < n; i++)
{
a[i] = -10 + 20 * rnd.NextDouble();
Console.Write("{0,6:f2}", a[i]);
} // for
Console.WriteLine();
Console.WriteLine();
// Найти отрицательные элементы и их произведение
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Отрицательные элементы:");
double pr = 1; // произведение
Console.ForegroundColor = ConsoleColor.White;
for (int i = 0; i < n; i++)
{
if (a[i] < 0)
{
Console.Write("{0,6:f2}", a[i]); // вывести положительные элементы
pr *= a[i];
}
} // for
Console.WriteLine();
Console.WriteLine();
Console.WriteLine("Их произведение = {0,6:f2}", pr);
//Найти максимальный элемент и его номер
double max = a[0];
int iMax = 0;
for (int i = 1; i < n - 1; i++)
{
if (a[i] > max)
{
max = a[i]; iMax = i;
}
}
Console.WriteLine("\nМаксимальный элемент = {0:f2}, а его номер = {1,3}", a[iMax], iMax);
//Вывести все элементы до максимального и их сумму
Console.WriteLine("Все положительные элементы, расположенные до максимального:");
double sMax = 0;
for (int i = 0; i < iMax; i++)
{
if (a[i] > 0)
{
sMax += a[i];
Console.Write("{0,6:f2}", a[i]);
}
} // for
Console.WriteLine("\nИх сумма = {0,6:f2}", sMax);
//Преобразование массива
int k = 0;
for (int i = 0; i < n; i++)
{
if (a[i] > 0)
k++;
}
double[] arrayModify = new double[k];
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Преобразованный массив:");
int l = -1;
for (int i = 0; i < n; i++)
{
if (a[i] > 0)
{
l++;
arrayModify[l] = a[i];
}
}
Array.Sort(arrayModify);
Console.ForegroundColor = ConsoleColor.Red;
for (int i = 0; i < k; i++)
{
Console.Write("{0,6}", i);
}
Console.WriteLine();
Console.ForegroundColor = ConsoleColor.White;
for (int i = 0; i < k; i++)
{
Console.Write("{0,6:f2}", arrayModify[i]);
}
Console.WriteLine();