Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 01.10.2016
Сообщений: 54
1

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

31.10.2016, 21:45. Показов 1540. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем хай! Есть код, пишет ошибку компиляции. В чем проблема??? Помогите разобраться!



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
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();
                                  }
                              }
                          }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.10.2016, 21:45
Ответы с готовыми решениями:

Найти минимальный и максимальный элемент массива
Как найти максимальный и минимальный элемент ,создав массив чисел. А главное как расписать в си...

Найти минимальный элемент массива в первой строке и максимальный в третьей
Массив чисел 3на3. Найти минимальный элемент в первой строке и максимальный в третьей.

Матрицы. Найти максимальный и минимальный элемент массива и его порядковый номер
дана матрица А(20) найти максимальный и минимальный элемент массива и его порядковый номер

Поменять местами максимальный элемент массива и минимальный элемент части массива, расположенной после максимального
Задача Поменять местами максимальный элемент массива и минимальный элемент части массива,...

1
94 / 94 / 36
Регистрация: 01.10.2014
Сообщений: 229
31.10.2016, 22:06 2
SancheZxZ, вот так попробуйте. В конце скобки забыли
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
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();
                            }
                        }
                    }
                }
            });
            }
    }
}
1
31.10.2016, 22:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.10.2016, 22:06
Помогаю со студенческими работами здесь

В первой половине массива найти максимальный элемент, во второй половине минимальный
Дан одномерный массив размером N. Заполнить массив случайными элементами. В первой половине массива...

Найти минимальный элемент в К-ом столбце и максимальный элемент в L-ом сторбце матрицы
Дана матрица А(n,n). Найти минимальный элемент в К-ом столбце и максимальный элемент в L-ом сторбце...

Найти максимальный элемент в каждом столбце и минимальный элемент в каждой строке и заменить их нулями
ребята, помогите пожалуйста, нужно задать двумерный массив(пользователем вводится кол-во столбцов и...

Определить минимальный и максимальный элемент массива
Доброго времени суток! Уважаемые форумчане, нужна помощь в решении поставленной задачи. В идеале...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru