C++ Program to Count Even and Odd Numbers in an Array

This article provides you some programs in C++ that count the number of even and odd numbers available in an array. The array must be entered by user at run-time.

Count Even/Odd Numbers in Array of 10 Numbers

The question is, write a program in C++ that receives an array of 10 numbers and count even/odd numbers available in the given array. The program given below is the answer to this question:

#include<iostream>

using namespace std;
int main()
{
   int arr[10], eve=0, odd=0, i;
   cout<<"Enter 10 Array Elements: ";
   for(i=0; i<10; i++)
      cin>>arr[i];
   for(i=0; i<10; i++)
   {
      if(arr[i]%2==0)
         eve++;
      else
         odd++;
   }
   cout<<"\nTotal Number of Even Numbers = "<<eve;
   cout<<"\nTotal Number of Odd Numbers = "<<odd;
   cout<<endl;
   return 0;
}

The snapshot given below shows the initial output produced by above C++ program on counting total number of even and odd numbers in a given array:

c++ count even odd numbers in array

Now supply the input say 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 as ten array elements and press ENTER key to find and print the number of odd and even numbers like shown in the snapshot given below:

count odd even numbers in array c++

The dry run of above program goes like:

  • If user enters same 10 elements as given in above sample run, then all those numbers gets stored in the array one by one in a way that, arr[0]=1, arr[1]=2, ..., arr[9]=10
  • Since all the 10 numbers gets received by user, therefore the execution of second for loop begins, that is responsible to count even/odd numbers
  • That is, first i=0 gets executed, that states 0 gets initialized to i. The initialization part executes only once
  • After initialization, the condition i<10 or 0<10 evaluates to be True
  • Therefore program flow goes inside the loop
  • Inside the loop, the condition of if gets evaluated
  • That is, the condition arr[i]%2==0 or arr[0]%2==0 or 1%2==0 evaluates to be False
  • Therefore program flow does not goes inside if's body, rather it goes to else's body and executes the statement odd++;
  • Since the initial value of odd is 0, therefore odd=1 now
  • Now the program flow goes to the update part of the loop, that is increment part.
  • So the value of i gets incremented, i=1 now
  • Again the condition i<10 or 1<10 evaluates to be True
  • Therefore program flow again goes inside the loop
  • Again the condition of if gets evaluated
  • But this time, the condition arr[i]%2==0 or arr[1]%2==0 or 2%2==0 or 0==0 evaluates to be True
  • Therefore program flow goes inside its body (if's body) and this time the value of eve variable gets incremented. So eve=1 now
  • Again the value of i gets incremented. So i=2 now
  • And the condition i<10 or 2<10 again evaluates to be True
  • Therefore the program flow again goes inside the loop, this process continues until the condition evaluates to be False
  • In this way, the two variables, one for even number counting, and other for odd number counting holds result.
  • Therefore just print the value of these two variables as result like shown in the sample run given above

Count Even/Odd Numbers in Array of n Numbers

This is the modified version of previous program, because this program allows user to define the size of array along with its elements.

#include<iostream>

using namespace std;
int main()
{
   int tot, arr[100], i, eve=0, odd=0;
   cout<<"Enter the Size of Array (max. 100): ";
   cin>>tot;
   cout<<"Enter "<<tot<<" Array Elements: ";
   for(i=0; i<tot; i++)
      cin>>arr[i];
   for(i=0; i<tot; i++)
   {
      if(arr[i]%2==0)
         eve++;
      else
         odd++;
   }
   cout<<endl;
   if(eve>1)
      cout<<"There are "<<eve<<" Even Numbers.";
   else
   {
      if(eve==1)
         cout<<"There is only 1 Even Number.";
      else
         cout<<"There is no any Even Number.";
   }
   cout<<endl;
   if(odd>1)
      cout<<"There are "<<odd<<" Odd Numbers.";
   else
   {
      if(odd==1)
         cout<<"There is only 1 Odd Number.";
      else
         cout<<"There is no any Odd Number.";
   }
   cout<<endl;
   return 0;
}

Here is its sample run with user input, 4 as size and 1, 2, 5, 7 as four array elements:

c++ program count even odd numbers array

C++ Online Test


« Previous Program Next Program »