w3resource

C Exercises: Return the minimum number of jumps to reach the end of the array

C Array: Exercise-56 with Solution

Write a program in C to return the minimum number of jumps to reach the end of the array.

Sample Solution:

C Code:

#include <stdio.h>
#include <limits.h>

// Function to calculate the minimum number of jumps needed to reach the end
int noOfJumps(int arr1[], int low, int high) {
    // If the start and end point are the same, no jump is needed
    if (high == low)
        return 0;

    // If the current position is 0, it's impossible to move forward
    if (arr1[low] == 0)
        return INT_MAX;

    int min = INT_MAX; // Initialize the minimum jumps to a maximum value
    // Iterate through all possible steps from the current position
    for (int i = low + 1; i <= high && i <= low + arr1[low]; i++) {
        // Recursively find the minimum jumps needed from the next position
        int jumps = noOfJumps(arr1, i, high);
        // If it's possible to jump from the next position and it's minimum, update min
        if (jumps != INT_MAX && jumps + 1 < min)
            min = jumps + 1; // Update the minimum jumps
    }
    return min; // Return the minimum number of jumps
}

int main() {
    int arr1[] = {1, 3, 5, 8, 9, 2, 6, 7, 6, 8, 9, 1, 1, 1};
    int n = sizeof(arr1) / sizeof(arr1[0]);
    int i;

    //------------- print original array ------------------
    printf("The given array is: ");
    for (i = 0; i < n; i++) {
        printf("%d ", arr1[i]);
    }
    printf("\n");
    //------------------------------------------------------

    // Calculate and display the minimum number of jumps needed to reach the end
    printf("The minimum number of jumps required to reach the end is: %d\n", noOfJumps(arr1, 0, n - 1));

    return 0;
}

Sample Output:

The given array is :  1  3  5  8  9  2  6  7  6  8  9  1  1  1  
The minimum of number of jumps is required to reach the end is:  3 

Flowchart:

Flowchart: Return the minimum number of jumps to reach the end of the array.

C Programming Code Editor:

Previous: Write a program in C to check whether an array is subset of another array.
Next: Write a program in C to find minimum element in a sorted and rotated array.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.