我正在尝试传递代码来列出素数 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++;
}
}
最佳答案
取决于代码的其余部分,但是:
如果删除第一个 FOR 循环中的增量,错误就很明显。你不能删除它。 “count++”为必填项。
检查 count 的初始值是否小于 n(即:如果“n”为 1,并且从 count =2 开始,FOR 循环将不会启动)
请注意:在第一个 IF block 中,您尝试修改“count”的值,但 FOR 循环正在使用该变量来控制剩余的迭代。正如我所说,这取决于代码功能,但通常您不希望发生这种情况(修改循环控制变量)
如果没有更多信息,恐怕我们无法为您提供更多帮助。
关于c - OpenMP 并行错误 : missing increment expression,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28402508/