Метод Parallel.For . Найти минимальный и максимальный элемент массива. Есть код - C#

Узнай цену своей работы

Формулировка задачи:

Всем хай! Есть код, пишет ошибку компиляции. В чем проблема??? Помогите разобраться!
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace ConsoleApplication7
  7. {
  8. class Program
  9. {
  10. static void Main()
  11. {
  12. int min, max, min1 = 0, min2 = 0, max1 = 0, max2 = 0;
  13. int[] massiv = new int[] { 3, 4, 45, 55, 22 };
  14. int k = Environment.ProcessorCount;
  15. int n = massiv.Length;
  16. int m = (n / k == 0) ? n / k : n / k + 1;
  17. double[] r = new double[k];
  18. Parallel.For(0, k, i =>
  19. {
  20. r[i] = 0.0;
  21. for (int j = i * m; j < m * (i + 1) && j < n; j++)
  22. min1 = massiv[0];
  23. for (i = 1; i < n / 2; i++)
  24. {
  25. if (massiv[i] < min1)
  26. { min1 = massiv[i]; }
  27. }
  28. max1 = massiv[0];
  29. for (i = 1; i < n / 2; i++)
  30. {
  31. if (massiv[i] > max1)
  32. { max1 = massiv[i]; }
  33. }
  34. r[i] = 0.0;
  35. {
  36. min2 = massiv[n / 2];
  37. for (i = n / 2 + 1; i < n; i++)
  38. {
  39. if (massiv[i] < max2)
  40. {
  41. min2 = massiv[i];
  42. }
  43. max2 = massiv[n / 2];
  44. for (i = n / 2 + 1; i < n; i++)
  45. {
  46. if (massiv[i] > max2)
  47. {
  48. max2 = massiv[i];
  49.  
  50. double res = r[0];
  51. if (min1 < min2)
  52. {
  53. min = min1;
  54. }
  55. else
  56. {
  57. min = min2;
  58. }
  59. if (max1 > max2)
  60. {
  61. max = max1;
  62. }
  63. else
  64. {
  65. max = max2;
  66. }
  67. Console.Write(massiv.Min() + " " + massiv.Max());
  68. Console.ReadLine();
  69. Console.WriteLine("min massiv ");
  70. Console.WriteLine("max massiv ");
  71. Console.WriteLine(min);
  72. Console.WriteLine(max);
  73. Console.ReadLine();
  74. }
  75. }
  76. }

Решение задачи: «Метод Parallel.For . Найти минимальный и максимальный элемент массива. Есть код»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace ConsoleApplication7
  8. {
  9.     class Program
  10.     {
  11.         static void Main()
  12.         {
  13.             int min, max, min1 = 0, min2 = 0, max1 = 0, max2 = 0;
  14.             int[] massiv = new int[] { 3, 4, 45, 55, 22 };
  15.             int k = Environment.ProcessorCount;
  16.             int n = massiv.Length;
  17.             int m = (n / k == 0) ? n / k : n / k + 1;
  18.             double[] r = new double[k];
  19.  
  20.             Parallel.For(0, k, i =>
  21.             {
  22.                 r[i] = 0.0;
  23.                 for (int j = i * m; j < m * (i + 1) && j < n; j++)
  24.                     min1 = massiv[0];
  25.                 for (i = 1; i < n / 2; i++)
  26.                 {
  27.                     if (massiv[i] < min1)
  28.                     { min1 = massiv[i]; }
  29.                 }
  30.                 max1 = massiv[0];
  31.                 for (i = 1; i < n / 2; i++)
  32.                 {
  33.                     if (massiv[i] > max1)
  34.                     { max1 = massiv[i]; }
  35.                 }
  36.                 r[i] = 0.0;
  37.                 {
  38.                     min2 = massiv[n / 2];
  39.                     for (i = n / 2 + 1; i < n; i++)
  40.                     {
  41.  
  42.                         if (massiv[i] < max2)
  43.                         {
  44.                             min2 = massiv[i];
  45.                         }
  46.                         max2 = massiv[n / 2];
  47.                         for (i = n / 2 + 1; i < n; i++)
  48.                         {
  49.                             if (massiv[i] > max2)
  50.                             {
  51.                                 max2 = massiv[i];
  52.  
  53.  
  54.  
  55.                                 double res = r[0];
  56.                                 if (min1 < min2)
  57.  
  58.                                 {
  59.                                     min = min1;
  60.  
  61.                                 }
  62.                                 else
  63.                                 {
  64.                                     min = min2;
  65.  
  66.                                 }
  67.                                 if (max1 > max2)
  68.                                 {
  69.                                     max = max1;
  70.                                 }
  71.                                 else
  72.                                 {
  73.                                     max = max2;
  74.  
  75.                                 }
  76.                                 Console.Write(massiv.Min() + " " + massiv.Max());
  77.                                 Console.ReadLine();
  78.                                 Console.WriteLine("min massiv ");
  79.                                 Console.WriteLine("max massiv ");
  80.                                 Console.WriteLine(min);
  81.                                 Console.WriteLine(max);
  82.                                 Console.ReadLine();
  83.                             }
  84.                         }
  85.                     }
  86.                 }
  87.             });
  88.             }
  89.     }
  90. }

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


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

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

14   голосов , оценка 3.929 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы