Помогите, пожалуйста, с потоками.

Я понятия не имею про openmp, но определение максимального элемента я бы сделал так:

  // находим максимальный элемент
#pragma omp parallel shared(a, b) private(i)
  {
#pragma omp for

    k = a[0];
    for (i = 1; i < N; i++) {
        if (a[i] > k)
            k = a[i];
    }

    l = b[0];
    for(i = 1; i < N; i++) {
        if (b[i] > l)
            l = b[i];
    }

    for(i = 1; i < N; i++) {
        m = (l > k ? l : k);
    }

  }
  printf ("%f\n", m);

Последний for на мой взгляд странен, но тебе наверно виднее.

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.