Метод Parallel.For . Найти минимальный и максимальный элемент массива. Есть код - C#
Формулировка задачи:
Всем хай! Есть код, пишет ошибку компиляции. В чем проблема??? Помогите разобраться!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication7
{
class Program
{
static void Main()
{
int min, max, min1 = 0, min2 = 0, max1 = 0, max2 = 0;
int[] massiv = new int[] { 3, 4, 45, 55, 22 };
int k = Environment.ProcessorCount;
int n = massiv.Length;
int m = (n / k == 0) ? n / k : n / k + 1;
double[] r = new double[k];
Parallel.For(0, k, i =>
{
r[i] = 0.0;
for (int j = i * m; j < m * (i + 1) && j < n; j++)
min1 = massiv[0];
for (i = 1; i < n / 2; i++)
{
if (massiv[i] < min1)
{ min1 = massiv[i]; }
}
max1 = massiv[0];
for (i = 1; i < n / 2; i++)
{
if (massiv[i] > max1)
{ max1 = massiv[i]; }
}
r[i] = 0.0;
{
min2 = massiv[n / 2];
for (i = n / 2 + 1; i < n; i++)
{
if (massiv[i] < max2)
{
min2 = massiv[i];
}
max2 = massiv[n / 2];
for (i = n / 2 + 1; i < n; i++)
{
if (massiv[i] > max2)
{
max2 = massiv[i];
double res = r[0];
if (min1 < min2)
{
min = min1;
}
else
{
min = min2;
}
if (max1 > max2)
{
max = max1;
}
else
{
max = max2;
}
Console.Write(massiv.Min() + " " + massiv.Max());
Console.ReadLine();
Console.WriteLine("min massiv ");
Console.WriteLine("max massiv ");
Console.WriteLine(min);
Console.WriteLine(max);
Console.ReadLine();
}
}
}Решение задачи: «Метод Parallel.For . Найти минимальный и максимальный элемент массива. Есть код»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication7
{
class Program
{
static void Main()
{
int min, max, min1 = 0, min2 = 0, max1 = 0, max2 = 0;
int[] massiv = new int[] { 3, 4, 45, 55, 22 };
int k = Environment.ProcessorCount;
int n = massiv.Length;
int m = (n / k == 0) ? n / k : n / k + 1;
double[] r = new double[k];
Parallel.For(0, k, i =>
{
r[i] = 0.0;
for (int j = i * m; j < m * (i + 1) && j < n; j++)
min1 = massiv[0];
for (i = 1; i < n / 2; i++)
{
if (massiv[i] < min1)
{ min1 = massiv[i]; }
}
max1 = massiv[0];
for (i = 1; i < n / 2; i++)
{
if (massiv[i] > max1)
{ max1 = massiv[i]; }
}
r[i] = 0.0;
{
min2 = massiv[n / 2];
for (i = n / 2 + 1; i < n; i++)
{
if (massiv[i] < max2)
{
min2 = massiv[i];
}
max2 = massiv[n / 2];
for (i = n / 2 + 1; i < n; i++)
{
if (massiv[i] > max2)
{
max2 = massiv[i];
double res = r[0];
if (min1 < min2)
{
min = min1;
}
else
{
min = min2;
}
if (max1 > max2)
{
max = max1;
}
else
{
max = max2;
}
Console.Write(massiv.Min() + " " + massiv.Max());
Console.ReadLine();
Console.WriteLine("min massiv ");
Console.WriteLine("max massiv ");
Console.WriteLine(min);
Console.WriteLine(max);
Console.ReadLine();
}
}
}
}
});
}
}
}