Hola Amigos!! Tengo el siguiente código y funciona bien, lo que pasa es que las variables pro y pro2 no me las reconoce para hacer la suma que esta en la variable resultadototal; le agradeceria el que pueda ayudarme!! Desde ya Gracias.
Aqui el codigo:
Aqui el codigo:
Código (c) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <pthread.h>
int P[100];
int H[25],A[25], F[25], G[25];
int i,sum = 0,sum2 = 0,sum3 = 0,sum4 = 0;
float pro,pro1,pro2,pro3,pro4, resultadofinal ;
void sacaraleatorios(){
for(i=0;i<100;i++)
P[i]=rand()%1000;
printf("Numeros Aleatorios \n" );
for(i=0;i<100;i++){
printf("%d",P[i]);
printf(",");
}
printf("\n");
}
void *usaSacaraleatorios(void *arg){
sacaraleatorios();
return NULL;
}
void imprimealeatoriosparte1(){
memcpy (H,P,100*sizeof(int));
printf("\n");
//printf("Numeros Aleatorios 25 de H \n" );
for(i=0;i<25;i++){
//printf("%d ",H[i]);
//printf("\n");
sum=sum+H[i];
}
pro=sum/25;
printf("El promedio del Hilo1 es %.2f",pro );
printf("\n");
}
void *usaImprimealeatorios(void *arg){
imprimealeatoriosparte1();
return NULL;
}
void imprimealeatoriosparte2(){
memcpy (A,P + 25, 100*sizeof(int));
//printf("Numeros Aleatorios 25 de A \n" );
for(i=0;i<25;i++){
//printf("%d ",A[i]);
//printf("\n");
sum2=sum2+A[i];
}
pro2=sum2/25;
printf("El promedio del hilo2 es %.2f",pro2 );
printf("\n");
}
void *usaImprimealeatorios2(void *arg){
imprimealeatoriosparte2();
return NULL;
}
void imprimealeatoriosparte3(){
memcpy (F,P + 50,100*sizeof(int));
//printf("Numeros Aleatorios 25 de F \n" );
for(i=0;i<25;i++){
//printf("%d ",F[i]);
//printf("\n");
sum3=sum3+F[i];
}
pro3=sum3/25;
printf("El promedio del Hilo3 es %.2f",pro3 );
printf("\n");
}
void *usaImprimealeatorios3(void *arg){
imprimealeatoriosparte3();
return NULL;
}
void imprimealeatoriosparte4(){
memcpy (G,P+75,100*sizeof(int));
//printf("Numeros Aleatorios 25 de G \n" );
for(i=0;i<25;i++){
//printf("%d ",G[i]);
//printf("\n");
sum4=sum4+G[i];
}
pro4=sum4/25;
printf("El promedio del Hilo4 es %.2f",pro4 );
printf("\n");
}
void *usaImprimealeatorios4(void *arg){
imprimealeatoriosparte4();
return NULL;
}
int main(int argc, char* argv[]){
srand(time(NULL));
sacaraleatorios();
pthread_t hiloHijo1;
pthread_t hiloHijo2;
pthread_t hiloHijo3;
pthread_t hiloHijo4;
pthread_create(&hiloHijo1,NULL,usaImprimealeatorios,NULL) ;
pthread_join(hiloHijo1, NULL);
pthread_create(&hiloHijo2,NULL,usaImprimealeatorios2,NULL) ;
pthread_join(hiloHijo2, NULL);
pthread_create(&hiloHijo3,NULL,usaImprimealeatorios3,NULL) ;
pthread_join(hiloHijo3, NULL);
pthread_create(&hiloHijo4,NULL,usaImprimealeatorios4,NULL) ;
pthread_join(hiloHijo4, NULL);
printf(" Hilo1 es %.2f",pro);
printf(" Hilo2 es %.2f",pro2 );
printf(" Hilo3 es %.2f",pro3 );
printf(" Hilo4 es %.2f",pro4 );
resultadofinal = (pro + pro2 + pro3 + pro4 )/4;
printf("El promedio total es: %f\n", resultadofinal);
return 0;
}