Find Maximum Element Using Pointer Walk

Code

#include <stdio.h>

#define MAX(a,b)   ( ((a)>(b)) ? (a) : (b))

int find_max_element(int *ptr, int n) {
    // Your logic here
    int m=*ptr++;
    for(int i=0 ; i<n-1 ; i++){
       m=MAX(m,*ptr);
       ptr++;
       
    }
    return m;
}
#define MAX(a,b)   (((a) > (b)) ? (a) : (b))

// int find_max_element(int *ptr, int n)
// {
//     int m = *ptr++;     // take first element and move pointer

//     while(--n)
//     {
//         m = MAX(m, *ptr);
//         ptr++;
//     }

//     return m;
// }

int main() {
    int n;
    scanf("%d", &n);

    int arr[100];
    for (int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }

    int result = find_max_element(arr, n);
    printf("%d", result);

    return 0;
}

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

5 10 25 5 30 15

Expected Output

30