Find Maximum Element Using Pointer Walk

Code

#include <stdio.h>

int find_max_element(int *ptr, int n) {
    // Your logic here
    // int max;
    // for(int i=0; i<n-1; i++){
    //     if(*(ptr+i) >= *(ptr+i+1)){
    //         max = *(ptr+i);
    //     }
    // }
    // return max;
    int max;
    int *end = ptr + n -1;
    while(ptr < end){
        if(*(ptr) >= *(ptr+1)){
            max = *ptr;
        }
        ptr ++;
    } 
    return max;
}

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