# Finding even and odd numbers in a set of elements dynamically using C language

## Problem

To compute sum of even numbers and odd numbers in a set of elements using dynamic memory allocation functions.

## Solution

In this program, we are trying to find even and odd numbers in a set of numbers.

The logic used to find even numbers in a set elements is given below −

for(i=0;i<n;i++){
if(*(p+i)%2==0) {//checking whether no is even or not
even=even+*(p+i); //calculating sum of even all even numbers in a list
}
}

The logic used to find odd numbers in a set elements is given below −

for(i=0;i<n;i++){
if(*(p+i)%2==0) {//checking number is even or odd
even=even+*(p+i);
}
Else {//if number s odd enter into block
odd=odd+*(p+i); //calculating sum of all odd numbers in a list
}
}

## Example

Live Demo

#include<stdio.h>
#include<stdlib.h>
void main(){
//Declaring variables, pointers//
int i,n;
int *p;
int even=0,odd=0;
//Declaring base address p using malloc//
p=(int *)malloc(n*sizeof(int));
printf("Enter the number of elements : ");
scanf("%d",&n);
/*Printing O/p -
We have to use if statement because we have to check if memory
has been successfully allocated/reserved or not*/
if (p==NULL){
printf("Memory not available");
exit(0);
}
//Storing elements into location using for loop//
printf("The elements are : ");
for(i=0;i<n;i++){
scanf("%d",p+i);
}
for(i=0;i<n;i++){
if(*(p+i)%2==0){
even=even+*(p+i);
}
else{
odd=odd+*(p+i);
}
}
printf("The sum of even numbers is : %d",even);
printf("The sum of odd numbers is : %d",odd);
}

## Output

Enter the number of elements : 5
The elements are :
34
23
12
11
45
The sum of even numbers is : 46
The sum of odd numbers is : 79