raider Posted January 6, 2016 at 04:12 PM Report #591493 Posted January 6, 2016 at 04:12 PM Alguém me poderá ajudar a resolver o seguinte problema: Tendo um array de 1000 posições, faça um programa que crie 5 processos e: Dado um número, procurar esse número no array. Cada processo filho, procura 200 posições. O processo que encontrar o número, deve imprimir a posição do array onde se encontra. Também deve "retornar" como valor de saída o número do processo (1, 2, 3, 4, 5). Os processos que não encontrarem o número devem "retornar" como valor de saída o valor 0. O processo pai tem de esperar que todos os filhos terminem e imprimir o número do processo onde esse número foi encontrado (1, 2, 3, 4, 5). Nota: O array não tem números repetidos
HappyHippyHippo Posted January 6, 2016 at 04:42 PM Report #591496 Posted January 6, 2016 at 04:42 PM um tópico colocado desta maneira normalmente é respondido desta forma : int main(int argc, char** argv) { // o código que tens de fazer return 0; } aqui não se fazem trabalhos. se tiveres uma dúvida concreta, tas à vontade de a apresentar, caso contrário, tenho sérias dúvidas se o tópico não seja mesmo bloqueado 1 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
raider Posted January 7, 2016 at 04:10 PM Author Report #591583 Posted January 7, 2016 at 04:10 PM Aqui está o codigo que desenvovli a minha dúvida é como retornar o valor de saída dos processos, para o processo que encontrar o numero e retornar zero para aqueles que não encontrão??? #include <stdio.h> #include <stdlib.h> #include <time.h> #include <unistd.h> #include <sys/wait.h> #include <sys/types.h> int main() { pid_t pid; int v[1000]; int i, j, n=1000, status; for(i=0; i<1001; i++) v=i+1; for(i=0; i<5; i++) { pid=fork(); if(pid==0) { for(j=250*i; j<250*(i+1); j++) if(v[j]==n) exit(j); exit(1000); } } for(i=0; i<5; i++) { wait(&status); if(WEXITSTATUS(status)!=1000) printf("O valor esta na posicao: %d\n", WEXITSTATUS(status)); } return 0; }
HappyHippyHippo Posted January 7, 2016 at 05:15 PM Report #591593 Posted January 7, 2016 at 05:15 PM Aqui está o codigo que desenvovli a minha dúvida é como retornar o valor de saída dos processos, para o processo que encontrar o numero e retornar zero para aqueles que não encontrão??? for(j=250*i; j<250*(i+1); j++) if(v[j]==n) exit(j); exit(1000); e eu não percebo a tua dúvida se tens o código acima apresentado. claro que o código está mal, mas se está lá é porque vei de algum lado IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now