OpenMP并行错误:缺少增量表达式

时间:2015-02-09 03:47:55

标签: c parallel-processing openmp

我试图通过代码列出主要的OpenMP号码,我有两个问题,

  • 第一个问题是删除Break并且代码可以正常工作
  • 第二个问题是标记此错误error: missing increment expression
  • 列出项目

    for (count = 2; count <= n;)

    //如果我将表达式添加为count ++代码无法正常工作。

这是我的代码:

int n, i = 3, count, c;
// n is the number's prime
for ( count = 2 ; count <= n ;    )
{
    for ( c = 2 ; c <= i - 1 ; c++ )
    {
        if ( i%c == 0 )
            break;

    }
    if ( c == i )
    {
        printf("%d\n",i);
        count++;
    }
  i++;
}

}

1 个答案:

答案 0 :(得分:0)

取决于其余代码,但是:

  • 如果删除第一个FOR循环中的增量,则错误很明显。你不能删除它。 &#34; count ++&#34;是强制性的。

  • 检查计数的初始值是否小于n(即:如果&#34; n&#34;为1,并且从count = 2开始,FOR循环将不会启动)

  • 注意:在第一个IF块中,您正在尝试修改&#34; count&#34;的值,但FOR循环正在使用该变量来控制剩余的迭代。正如我所说,这取决于代码功能,但通常你不希望发生这种情况(修改循环控制变量)

如果没有进一步的信息,我担心我们不能再帮助你了。