How to count the odd and even sum of pairs in an array with C

1 Answer

0 votes
#include <stdio.h>

void count_odd_and_even_sum_of_pairs(int *arr, int size, int *evenodd) {
    int total_even = 0, total_odd = 0;

    for (int i = 0; i < size; i++) {
        if (arr[i] % 2 == 0) {
            total_even++;
        }
        else {
            total_odd++;
        }
    }

    // For all the even elements -> sum of the pair will be even
    int evenPairs = ((total_even * (total_even - 1)) / 2);

    // For all the odd elements -> sum of the pair will be even
    evenPairs += ((total_odd * (total_odd - 1)) / 2);

    // All even elements * all odd element -> sum of the pair will be odd
    int oddPairs = total_even * total_odd;

    evenodd[0] = evenPairs;
    evenodd[1] = oddPairs;
}

int main()
{
    int arr[] = {1, 2, 3, 4, 5};
    int size = sizeof(arr) / sizeof(arr[0]);
    int evenodd[2];

    // 1 + 3, 1 + 5, 2 + 4, 3 + 5 = 4 Even
    // 1 + 2, 1 + 4, 2 + 3, 2 + 5, 3 + 4, 4 + 5 = 6 Odd

    count_odd_and_even_sum_of_pairs(arr, size, evenodd);

    printf("Total Even Sum = %d\n", evenodd[0]);
    printf("Total Odd Sum = %d\n", evenodd[1]);

    return 0;
}




/*
run:

Total Even Sum = 4
Total Odd Sum = 6

*/


 



answered Jun 17, 2024 by avibootz

Related questions

1 answer 117 views
1 answer 109 views
1 answer 134 views
1 answer 99 views
1 answer 116 views
...