Метод 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();
- }
- }
- }
- }
- });
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д