Метод 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();
                            }
                        }
                    }
                }
            });
            }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.929 из 5
Похожие ответы