如何把一段c++循环改为并行计算的openmp程序,

这是我的程序,#pragmaompparallelfor,老师不让加这一句,而是直接编写,#include<iostream>#include<cmath>#includ... 这是我的程序,#pragma omp parallel for,老师不让加这一句,而是直接编写,

#include <iostream>
#include<cmath>
#include<ctime>
using namespace std;
//f(x)是题目的多项式函数 f(x)=-x^4+x^3+1
double f(double x)
{
double s=-pow(x,4)+pow(x,3)+1;
return s;
}
int main()
{
//[a,b,c,d]分别是x,y的取值范围
double a=-1,b=1.5,c=0.0,d=1.2;
double area=0;
double x=0,y=0;
int cnt=0;//cnt是分割后的占到的格数
//step是步长
double step=1.0e-4;
int n=(b-a)/step;
int m=(d-c)/step;
clock_t t1=clock();
#pragma omp parallel for
for(int i=0;i<n;i++)
{ x=a+step*i;
for(int j=0;j<m;j++)
{y=c+step*j;
if(y<f(x))
{
cnt++;

}
}

}
clock_t t2=clock();
cout<<"total time is "<<(t2-t1)/1000.0<<"s"<<endl;
area=cnt*step*step;
cout<<"曲线y=-x^4+x^3+1与x轴围城的面积是s="<<area<<endl;
return 0;
}
展开
 我来答
百度网友2fe0e91
2014-12-09 · 超过18用户采纳过TA的回答
知道答主
回答量:45
采纳率:100%
帮助的人:35.9万
展开全部
为什么老师不让加?要用openmp就一定要加上openmp的制导语句的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式