C Programming Tutorial

 
 
 
 

Image

# include <stdio.h>
# include </usr/include/sys/types.h>
# include </usr/include/sys/shm.h>
# include </usr/include/sys/ipc.h>

# include \"forkjoin.h\"
int main()
{
    int arr[10]={1,2,3,4,5,6,7,8,9,10};
    int FinalSum=0;
    int id,NPROC=5;
    int iCount;
    int shmid;
    int *MAX,FinalMax;
    int *MIN,FinalMin;
        shmid=shmget(IPC_PRIVATE,sizeof(int)*NPROC,IPC_CREAT| SHM_R | SHM_W);
    MAX=(int *)shmat(shmid,0,0);

    shmid=shmget(IPC_PRIVATE,sizeof(int)*NPROC,IPC_CREAT | SHM_R | SHM_W);
    MIN=(int *)shmat(shmid,0,0);

    id=process_fork(NPROC);

    MAX[id]=arr[id];
    MIN[id]=arr[id];

    for(iCount=id+NPROC;iCount<10;iCount=iCount+NPROC)
    {
        if(arr[iCount] > MAX[id])
        {
            MAX[id]=arr[iCount];
        }

        if(arr[iCount] < MIN[id])
        {
            MIN[id]=arr[iCount];
        }
    }    
    process_join(NPROC,id);

    FinalMax=MAX[0];
    FinalMin=MIN[0];

    for(iCount=1;iCount<NPROC;iCount++)
    {
        if(FinalMax < MAX[iCount])
        {
            FinalMax=MAX[iCount];
        }        

        if(FinalMin > MIN[iCount])
        {
            FinalMin=MIN[iCount];
        }
    }    

     printf(\"\\n Maximum : %d \\n\",FinalMax);
     printf(\"\\n Minimum : %d \\n\",FinalMin);

    return 0;
}

 
 
Didn't find what you were looking for? Find more on Program of finding Maximum and minimum of an array using Loop Splitting