int main(int argc, char* argv[]) { double global_result; /* Store result in global_result */ double a, b; /* Left and right endpoints */ int n; /* Total number of trapezoids */ int thread_count; if (argc != 2) Usage(argv[0]); thread_count = strtol(argv[1], NULL, 10); printf("Enter a, b, and n\n"); scanf("%lf %lf %d", &a, &b, &n); if (n % thread_count != 0) Usage(argv[0]); global_result = 0.0; # pragma omp parallel num_threads(thread_count) { double my_result = 0.0; my_result += Local_trap(a, b, n); # pragma omp critical global_result += my_result; } printf("With n = %d trapezoids, our estimate\n", n); printf("of the integral from %f to %f = %.14e\n", a, b, global_result); return 0; } /* main */
int main(int argc, char const *argv[]) { double global_result = 0.0; double a, b; int n,thread_count; thread_count = strtol(argv[1], NULL, 10); a=1; b=2; n=100;/**/ /*printf("ingrese n: "); scanf("%d",&n);*/ if(n%thread_count!=0) { printf("el numero %i no es multiplo de %d\n", thread_count,n); exit(0); } # pragma omp parallel num_threads(thread_count)\ reduction(+:global_result) global_result += Local_trap(a, b, n); printf("%f\n", global_result); return 0; }