方法1
#include<stdio.h>
#include"mpi.h"
double Trap(double left_endpt,double right_endpt,int trap_count,double base_len);
double f(double x);
int main(void)
{
int my_rank,comm_sz,n = 1024,local_n;
double a = 0.0, b= 1.0 , h, local_a,local_b;
double local_int,total_int;
int source;
MPI_Init(NULL,NULL);
MPI_Comm_rank(MPI_COMM_WORLD,&my_rank);
MPI_Comm_size(MPI_COMM_WORLD,&comm_sz);
Get_input(my_rank, comm_sz, &a, &b, &n);
h = (b-a)/n;
local_n= n/comm_sz;
local_a = a+my_rank * local_n * h;
local_b = local_a + local_n * h;
local_int = Trap(local_a ,local_b,local_n,h);
if(my_rank!=0)
{
MPI_Send(&local_int,1,MPI_DOUBLE,0,0,MPI_COMM_WORLD);
}
else
{
total_int = local_int;
for(source =1; source <comm_sz; sou