Given an array arr of integers of size N, the task is to find the count of positive numbers and negative numbers in the array Examples:
Input: arr[] = {2, -1, 5, 6, 0, -3} Output: Positive elements = 3 Negative elements = 2 There are 3 positive, 2 negative, and 1 zero. Input: arr[] = {4, 0, -2, -9, -7, 1} Output: Positive elements = 2 Negative elements = 3 There are 2 positive, 3 negative, and 1 zero.
Approach:
- Traverse the elements in the array one by one.
- For each element, check if the element is less than 0. If it is, then increment the count of negative elements.
- For each element, check if the element is greater than 0. If it is, then increment the count of positive elements.
- Print the count of negative and positive elements.
Below is the implementation of the above approach:
C
#include <stdio.h>
int countPositiveNumbers( int * arr, int n)
{
int pos_count = 0;
int i;
for (i = 0; i < n; i++) {
if (arr[i] > 0)
pos_count++;
}
return pos_count;
}
int countNegativeNumbers( int * arr, int n)
{
int neg_count = 0;
int i;
for (i = 0; i < n; i++) {
if (arr[i] < 0)
neg_count++;
}
return neg_count;
}
void printArray( int * arr, int n)
{
int i;
printf ( "Array: " );
for (i = 0; i < n; i++) {
printf ( "%d " , arr[i]);
}
printf ( "\n" );
}
int main()
{
int arr[] = { 2, -1, 5, 6, 0, -3 };
int n;
n = sizeof (arr) / sizeof (arr[0]);
printArray(arr, n);
printf ( "Count of Positive elements = %d\n" ,
countPositiveNumbers(arr, n));
printf ( "Count of Negative elements = %d\n" ,
countNegativeNumbers(arr, n));
return 0;
}
|
Output:Array: 2 -1 5 6 0 -3
Count of Positive elements = 3
Count of Negative elements = 2
Time complexity: O(n) where n is size of the given array
Auxiliary space: O(1)