Code

#include <stdio.h>

void reassign_based_on_value(int **pp, int *n2_ptr) {
    // Your logic here
    if((**pp)%2 == 0){
        *pp = n2_ptr;
    }
}

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

    int *p = &n1;

    reassign_based_on_value(&p, &n2);

    printf("%d", *p);

    return 0;
}

Solving Approach

Pointer p initially is pointing to n1

We pass the address of p (double pointer) rather than p (single pointer)

if address pointed to p holds a value which is even:

  • reassign p to hold the address of a pointer n2

 

 

Upvote
Downvote
Loading...

Input

10 50

Expected Output

50