w3resource

C Exercises: Find if a given integer x appears more than n/2 times in a sorted array of n integers

C Array: Exercise-48 with Solution

Write a program in C to find out if a given integer x appears more than n/2 times in a sorted array of n integers.

The program checks if a specified integer appears more than half the times in a sorted array. It counts the occurrences of the integer and compares it to half the length of the array, printing the result.

Visual Presentation:

C Exercises: Find if a given integer x appears more than n/2 times in a sorted array of n integers

Sample Solution:

C Code:

# include <stdio.h>
# include <stdbool.h>

// Function to check if 'x' appears more than n/2 times in arr1[]
bool ChkMajority(int arr1[], int arr_size, int x)
{
    int i;
    // Check if the last index is even or odd to decide the range
    int last_index = arr_size % 2 ? (arr_size / 2 + 1) : (arr_size / 2);
    for (i = 0; i < last_index; i++)
    {
        // Check if the element at current index and the corresponding element after mid point equals 'x'
        if (arr1[i] == x && arr1[i + arr_size / 2] == x)
            return true; // Return true if 'x' appears more than n/2 times
    }
    return false; // Return false if 'x' does not appear more than n/2 times
}

int main()
{
    int arr1[] = {1, 3, 3, 5, 4, 3, 2, 3, 3};
    int arr_size = sizeof(arr1) / sizeof(arr1[0]);
    int x = 3, i;

    // Print the given array
    printf("The given array is :  ");
    for (i = 0; i < arr_size; i++)
    {
        printf("%d  ", arr1[i]);
    }
    printf("\n");
    printf("The given value is :  %d\n", x);

    // Check if 'x' appears more than n/2 times in the array
    if (ChkMajority(arr1, arr_size, x))
        printf("%d appears more than %d times in the given array[]", x, arr_size / 2);
    else
        printf("%d does not appear more than %d times in the given array[]", x, arr_size / 2);

    return 0;
}

Sample Output:

The given array is :  1  3  3  5  4  3  2  3  3  
The given value is :  3
3 appears more than 4 times in the given array[]

Flowchart:

Flowchart: Find if a given integer x appears more than n/2 times in a sorted array of n integers.

C Programming Code Editor:

Previous: Write a program in C to find a subarray with given sum from the given array.
Next: Write a program in C to find majority element of an array.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://w3resource.com/c-programming-exercises/array/c-array-exercise-48.php