Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #define N 10
- #define M 11
- #define X 6
- void swap(int *max, int *min)
- {
- if (*min > *max)
- {
- int temp = *max;
- *max = *min;
- *min = temp;
- }
- }
- void minmax(int *arr, int n, int *max, int *min)
- {
- int Lmax, Rmax, Lmin, Rmin;
- if (n == 0)
- {
- *min = *max = -1;
- return;
- }
- if (n == 1)
- {
- *min = *max = arr[0];
- return;
- }
- if (n == 2)
- {
- *max = arr[0];
- *min = arr[1];
- swap(max,min);
- return;
- }
- minmax(arr,n/2,&Lmax,&Lmin);
- minmax(arr+(n/2),(n/2)+(n%2),&Rmax,&Rmin);
- *max = (Lmax > Rmax)? Lmax : Rmax;
- *min = (Lmin < Rmin)? Lmin : Rmin;
- }
- int abs(int value)
- {
- if (value < 0)
- return value*(-1);
- return value;
- }
- void findDouble(int *arr, int n)
- {
- int i;
- for (i=0;i<n+2;i++)
- {
- if (arr[abs(arr[i]) - 1] < 0)
- {
- printf("Value is: %d\n",arr[i]);
- }
- else
- {
- arr[abs(arr[i]) - 1] = arr[abs(arr[i]) - 1] * (-1);
- }
- }
- }
- void main()
- {
- int max,min;
- int arr1[N] = {3,1,17,9,4,2,27,21,7,10};
- int arr2[M] = {6,5,4,8,1,90,11,21,34,32,33};
- int arr3[X+2] = {1,3,2,2,5,5,6,4};
- findDouble(arr3,X);
- minmax(arr1,N,&max,&min);
- printf("max = %d, min = %d\n",max,min);
- minmax(arr2,M,&max,&min);
- printf("max = %d, min = %d\n",max,min);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement