a.12.1.c

来自「用于进行gcc测试」· C语言 代码 · 共 42 行

C
42
字号
/* { dg-do compile } */#include <stdio.h>extern float average (float, float, float);voida12 (float *x, float *xold, int n, float tol){  int c, i, toobig;  float error, y;  c = 0;#pragma omp parallel  {    do      {#pragma omp for private(i)	for (i = 1; i < n - 1; ++i)	  {	    xold[i] = x[i];	  }#pragma omp single	{	  toobig = 0;	}#pragma omp for private(i,y,error) reduction(+:toobig)	for (i = 1; i < n - 1; ++i)	  {	    y = x[i];	    x[i] = average (xold[i - 1], x[i], xold[i + 1]);	    error = y - x[i];	    if (error > tol || error < -tol)	      ++toobig;	  }#pragma omp master	{	  ++c;	  printf ("iteration %d, toobig=%d\n", c, toobig);	}      }    while (toobig > 0);  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?