Count the odd and even elements in the given array.
Before get started with this problem, kindly refer the odd or even problem (without array) using the below link,
Odd or even - Normal methodOdd or even - Bitwise method
Problem statement
Count number of even and odd elements in an array
Input
array size = 5
Elements = { 10, 2, 3, 7, 12}
Output
Odd numbers count = 3 (i.e. 10,2,12)
Even numbers count = 2 (i.e. 3,7)
Input
array size = 4
Elements = {12, 4, 0, 8}
Output
Odd numbers count = 0
Even numbers count = 4 (i.e. 12,4,0,8)
Procedure
1.Declare two integer variables to store odd and even numbers count and initialize them to zero.
int odd_count = 0, even_count = 0;
2.Loop through each element of an array and check whether its odd or even
3.if it's odd, increment the odd_count variable by 1
4.else, increment the even_count variable by 1
Odd and even number count in the array
Normal Method
Example
#include<stdio.h> int main() { //let's assume the maximum arr size as 100. int arr[100], size, odd_count = 0, even_count = 0, i; //get array size from the user printf("Enter array size\n"); scanf("%d",&size); //get array elements from the user printf("Enter array elements\n"); for(i = 0; i < size; i++) scanf("%d",&arr[i]); /*check each element in the array *if its odd, increment odd count *else, increment even count */ for(i = 0; i < size; i++) { if(arr[i] % 2 == 1) odd_count++; else even_count++; } //print the result printf("Odd number count = %d\nEven number count = %d\n",odd_count,even_count); return 0; }
Bitwise Method
Example
#include<stdio.h> int main() { //let's assume the maximum arr size as 100. int arr[100], size, odd_count = 0, even_count = 0, i; //get array size from the user printf("Enter array size\n"); scanf("%d",&size); //get array elements from the user printf("Enter array elements\n"); for(i = 0; i < size; i++) scanf("%d",&arr[i]); /*check each element in the array *if its odd, increment odd count *else, increment even count */ for(i = 0; i < size; i++) { if(arr[i] & 1 == 1) odd_count++; else even_count++; } //print the result printf("Odd number count = %d\nEven number count = %d\n",odd_count,even_count); return 0; }
Bitwise solution is more efficient way to solve the above problem.