Todo listo, muchas gracias por su tiempo y sus explicaciones.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
int i = *((int*) argument);
P = (int*)malloc(sizeof(int));
*P = i;
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
# include <unistd.h>
# include <pthread.h>
double factores [1000];
int i,N;
double step,x, totalsum, pi;
void *calcularsum (void *argument){
x = (i+0.5)*step;
factores[i] = 4.0/(1.0+x*x);
}
int main (int argc, char *argv[]) {
if (argc != 2){
printf("Se ha de introducir un valor. Ejemplo: ./pi 10\n");
}else{
N=atoi(argv[1]);
step = 1.0/N;
pthread_t h[N];
for (i=0; i<N; i++) {
pthread_create(&h[i] , NULL , calcularsum , NULL);
}
for (i=0; i<N; i++){
pthread_join(h[i], NULL);
totalsum = factores[i] + totalsum;
printf("%f\n",totalsum);
}
pi = totalsum * step;
printf("%.10f\n", pi);
}
return 0;
}