Find ratio of zeroes, positive numbers and negative numbers in the Array
Given an array a of integers of size N integers, the task is to find the ratio of positive numbers, negative numbers and zeros in the array up to four decimal places.
Examples:
Input: a[] = {2, -1, 5, 6, 0, -3}
Output: 0.5000 0.3333 0.1667
There are 3 positive, 2 negative, and 1 zero. Their ratio would be positive: 3/6 = 0.5000, negative: 2/6 = 0.3333, and zero: 1/6 = 0.1667.Input: a[] = {4, 0, -2, -9, -7, 1}
Output: 0.3333 0.5000 0.1667
There are 2 positive, 3 negative, and 1 zero. Their ratio would be positive: 2/6 = 0.3333, negative: 3/6 = 0.5000, and zero: 1/6 = 0.1667.
Approach:
- Count the total number of positive elements in the array.
- Count the total number of negative elements in the array.
- Count the total number of zero elements in the array.
- Divide the total number of positive elements, negative elements, and zero elements by the size of the array, to get the ratio.
- Print the ratio of positive, negative, and zero elements in the array up to four decimal places.
Below is the implementation of the above approach.
C++
// C++ program to find the ratio of positive, // negative, and zero elements in the array. #include<bits/stdc++.h> using namespace std; // Function to find the ratio of // positive, negative, and zero elements void positiveNegativeZero( int arr[], int len) { // Initialize the positiveCount, negativeCount, and // zeroCountby 0 which will count the total number // of positive, negative and zero elements float positiveCount = 0; float negativeCount = 0; float zeroCount = 0; // Traverse the array and count the total number of // positive, negative, and zero elements. for ( int i = 0; i < len; i++) { if (arr[i] > 0) { positiveCount++; } else if (arr[i] < 0) { negativeCount++; } else if (arr[i] == 0) { zeroCount++; } } // Print the ratio of positive, // negative, and zero elements // in the array up to four decimal places. cout << fixed << setprecision(4) << (positiveCount / len)<< " " ; cout << fixed << setprecision(4) << (negativeCount / len)<< " " ; cout << fixed << setprecision(4) << (zeroCount / len); cout << endl; } // Driver Code. int main() { // Test Case 1: int a1[] = { 2, -1, 5, 6, 0, -3 }; int len= sizeof (a1)/ sizeof (a1[0]); positiveNegativeZero(a1,len); // Test Case 2: int a2[] = { 4, 0, -2, -9, -7, 1 }; len= sizeof (a2)/ sizeof (a2[0]); positiveNegativeZero(a2,len); } // This code is contributed by chitranayal |
Java
// Java program to find the ratio of positive, // negative, and zero elements in the array. class GFG { // Function to find the ratio of // positive, negative, and zero elements static void positiveNegativeZero( int [] arr) { // Store the array length into the variable len. int len = arr.length; // Initialize the positiveCount, negativeCount, and // zeroCountby 0 which will count the total number // of positive, negative and zero elements float positiveCount = 0 ; float negativeCount = 0 ; float zeroCount = 0 ; // Traverse the array and count the total number of // positive, negative, and zero elements. for ( int i = 0 ; i < len; i++) { if (arr[i] > 0 ) { positiveCount++; } else if (arr[i] < 0 ) { negativeCount++; } else if (arr[i] == 0 ) { zeroCount++; } } // Print the ratio of positive, // negative, and zero elements // in the array up to four decimal places. System.out.printf( "%1.4f " , positiveCount / len); System.out.printf( "%1.4f " , negativeCount / len); System.out.printf( "%1.4f " , zeroCount / len); System.out.println(); } // Driver Code. public static void main(String args[]) { // Test Case 1: int [] a1 = { 2 , - 1 , 5 , 6 , 0 , - 3 }; positiveNegativeZero(a1); // Test Case 2: int [] a2 = { 4 , 0 , - 2 , - 9 , - 7 , 1 }; positiveNegativeZero(a2); } } |
Python3
# Python3 program to find the ratio of positive, # negative, and zero elements in the array. # Function to find the ratio of # positive, negative, and zero elements def positiveNegativeZero(arr): # Store the array length into the variable len. length = len (arr); # Initialize the positiveCount, negativeCount, and # zeroCountby 0 which will count the total number # of positive, negative and zero elements positiveCount = 0 ; negativeCount = 0 ; zeroCount = 0 ; # Traverse the array and count the total number of # positive, negative, and zero elements. for i in range (length): if (arr[i] > 0 ): positiveCount + = 1 ; elif (arr[i] < 0 ): negativeCount + = 1 ; elif (arr[i] = = 0 ): zeroCount + = 1 ; # Print the ratio of positive, # negative, and zero elements # in the array up to four decimal places. print ( "{0:.4f}" . format ((positiveCount / length)), end = " " ); print ( "%1.4f " % (negativeCount / length), end = " " ); print ( "%1.4f " % (zeroCount / length), end = " " ); print (); # Driver Code. if __name__ = = '__main__' : # Test Case 1: a1 = [ 2 , - 1 , 5 , 6 , 0 , - 3 ]; positiveNegativeZero(a1); # Test Case 2: a2 = [ 4 , 0 , - 2 , - 9 , - 7 , 1 ]; positiveNegativeZero(a2); # This code is contributed by Rajput-Ji |
C#
// C# program to find the ratio of positive, // negative, and zero elements in the array. using System; class GFG { // Function to find the ratio of // positive, negative, and zero elements static void positiveNegativeZero( int [] arr) { // Store the array length into the variable len. int len = arr.Length; // Initialize the positiveCount, negativeCount, and // zeroCountby 0 which will count the total number // of positive, negative and zero elements float positiveCount = 0; float negativeCount = 0; float zeroCount = 0; // Traverse the array and count the total number of // positive, negative, and zero elements. for ( int i = 0; i < len; i++) { if (arr[i] > 0) { positiveCount++; } else if (arr[i] < 0) { negativeCount++; } else if (arr[i] == 0) { zeroCount++; } } // Print the ratio of positive, // negative, and zero elements // in the array up to four decimal places. Console.Write( "{0:F4} " , positiveCount / len); Console.Write( "{0:F4} " , negativeCount / len); Console.Write( "{0:F4} " , zeroCount / len); Console.WriteLine(); } // Driver Code. public static void Main(String []args) { // Test Case 1: int [] a1 = { 2, -1, 5, 6, 0, -3 }; positiveNegativeZero(a1); // Test Case 2: int [] a2 = { 4, 0, -2, -9, -7, 1 }; positiveNegativeZero(a2); } } // This code is contributed by sapnasingh4991 |
Javascript
<script> // Javascript program to find the // ratio of positive, negative, and // zero elements in the array. // Function to find the ratio of // positive, negative, and zero elements function positiveNegativeZero(arr) { // Store the array length into // the variable len. let len = arr.length; // Initialize the positiveCount, // negativeCount, and zeroCountby // 0 which will count the total number // of positive, negative and zero elements let positiveCount = 0; let negativeCount = 0; let zeroCount = 0; // Traverse the array and count the // total number of positive, negative, // and zero elements. for (let i = 0; i < len; i++) { if (arr[i] > 0) { positiveCount++; } else if (arr[i] < 0) { negativeCount++; } else if (arr[i] == 0) { zeroCount++; } } // Print the ratio of positive, // negative, and zero elements // in the array up to four decimal places. document.write((positiveCount / len).toFixed(4) + " " ); document.write((negativeCount / len).toFixed(4) + " " ); document.write((zeroCount / len).toFixed(4)); document.write( "<br>" ); } // Driver Code. // Test Case 1: let a1 = [ 2, -1, 5, 6, 0, -3 ]; positiveNegativeZero(a1); // Test Case 2: let a2 = [ 4, 0, -2, -9, -7, 1 ]; positiveNegativeZero(a2); // This code is contributed by sravan kumar G </script> |
Output:
0.5000 0.3333 0.1667 0.3333 0.5000 0.1667
Time Complexity: O(len)
Auxiliary Space: O(1)