rendered paste body#include<stdio.h>
#include<sys/types.h>
#include<sys/ipc.h>
#include<sys/shm.h>
#include<fcntl.h>
#define SHMKEY 51015688
#define K 1024
int shmid;
void main(void){
int *MAX, *MIN;
int num[100],n,menu;
char *addr;
int max,min;
if((shmid=shmget(SHMKEY,1*K,0777|IPC_CREAT))<0){
exit(0);
}
addr=shmat(shmid,0,0);
MIN=(int*)addr;
MAX=(int*)addr+1;
int childpid;
childpid=fork();
if(childpid==0){
do{
printf("********\n");
printf("Menu\n");
printf("1. Enter Num\n");
printf("2. findMin\n");
printf("3. findMax\n");
printf("4. printMin\n");
printf("5. printMax\n");
printf("6. Exit\n");
printf("Enter Menu(1-6): ");
scanf("%d",&menu);
printf("********\n");
switch(menu){
case 1: printf("Enter Number[%d]: ",n+1);
scanf("%d",&num[n]);
n++;
break;
case 2: max=num[0];
for(int i=1;i<n;i++){
if(num[i]>max){
max=num[i];
}
}
*MAX=max;
break;
case 3: min=num[0];
for(int i=1;i<n;i++){
if(num[i]<min){
min=num[i];
}
}
*MIN=min;
break;
case 4: printf("min child: %d\n",min);
printf("*MIN child: %d\n",*MIN);
break;
case 5: printf("max child: %d\n",max);
printf("*MAX child: %d\n",*MAX);
break;
}
}
while(menu!=6);
exit(0);
}
wait();
printf("Exit! \n");
printf("min parent: %d\n",min);
printf("*MIN parent: %d\n",*MIN);
printf("max parent: %d\n",max);
printf("*MAX parent: %d\n",*MAX);
}