# Find the Batting Average of a batsman

Given three integers **runs**, **matches**, and **not-out** representing the number of runs scored, number of innings played by the batsman and number of times he remained Not Out respectively, the task is to calculate the Batting Average of the batsman.

where

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the

Essential Maths for CP Courseat a student-friendly price. To complete your preparation from learning a language to DS Algo and many more, please referComplete Interview Preparation Course.

**Note:** If the batsman was never dismissed, print “NA” as the no average can be defined.

**Examples:**

Input:runs = 10000, matches = 250, not-out = 50Output:50Explanation:

Number of times batsman was dismissed = 250 – 50 = 200

Batting Average = 10000 / 200 = 50.

Input:runs = 100, matches = 1, not-out = 1Output:NA

**Approach:**

Follow the steps below to solve the problem:

- Calculate the number of dismissals, equal to
**matches – notout**. - Calculate the Batting Average, equal to
**runs/ (matches – notout)**.

Below is the implementation of the above approach:

## C++

`// C++ program to calculate` `// the average of a batsman` `#include <bits/stdc++.h>` `using` `namespace` `std;` `// Function to find the average` `// of a batsman` `double` `averageRuns(` `int` `runs,` ` ` `int` `matches,` ` ` `int` `notout)` `{` ` ` `// Calculate number of` ` ` `// dismissals` ` ` `int` `out = matches - notout;` ` ` `// check for 0 times out` ` ` `if` `(out == 0)` ` ` `return` `-1;` ` ` `// Calculate batting average` ` ` `double` `avg = ` `double` `(runs) / out;` ` ` `return` `avg;` `}` `// Driver Program` `int` `main()` `{` ` ` `int` `runs = 10000;` ` ` `int` `matches = 250;` ` ` `int` `notout = 50;` ` ` `double` `avg` ` ` `= averageRuns(` ` ` `runs, matches, notout);` ` ` `if` `(avg == -1)` ` ` `cout << ` `"NA"` `;` ` ` `else` ` ` `cout << avg;` ` ` `return` `0;` `}` |

## Java

`// Java program to calculate` `// the average of a batsman` `class` `GFG{` ` ` `// Function to find the average` `// of a batsman` `static` `int` `averageRuns(` `int` `runs,` ` ` `int` `matches,` ` ` `int` `notout)` `{` ` ` ` ` `// Calculate number of` ` ` `// dismissals` ` ` `int` `out = matches - notout;` ` ` `// Check for 0 times out` ` ` `if` `(out == ` `0` `)` ` ` `return` `-` `1` `;` ` ` `// Calculate batting average` ` ` `int` `avg = (runs) / out;` ` ` `return` `avg;` `}` `// Driver code` `public` `static` `void` `main(String[] args)` `{` ` ` `int` `runs = ` `10000` `;` ` ` `int` `matches = ` `250` `;` ` ` `int` `notout = ` `50` `;` ` ` `int` `avg = averageRuns(runs, matches,` ` ` `notout);` ` ` `if` `(avg == -` `1` `)` ` ` `System.out.print(` `"NA"` `);` ` ` `else` ` ` `System.out.print(avg);` `}` `}` `// This code is contributed by Ritik Bansal` |

## Python3

`# Python3 program to calculate` `# the average of a batsman` `# Function to find the average` `# of a batsman` `def` `averageRuns(runs, matches, notout):` ` ` `# Calculate number of` ` ` `# dismissals` ` ` `out ` `=` `matches ` `-` `notout;` ` ` `# check for 0 times out` ` ` `if` `(out ` `=` `=` `0` `):` ` ` `return` `-` `1` `;` ` ` `# Calculate batting average` ` ` `avg ` `=` `runs ` `/` `/` `out;` ` ` `return` `avg;` `# Driver Program` `runs ` `=` `10000` `;` `matches ` `=` `250` `;` `notout ` `=` `50` `;` `avg ` `=` `averageRuns(runs, matches, notout);` `if` `(avg ` `=` `=` `-` `1` `):` ` ` `print` `(` `"NA"` `);` `else` `:` ` ` `print` `(avg);` `# This code is contributed by Akanksha_rai` |

## C#

`// C# program to calculate` `// the average of a batsman` `using` `System;` `class` `GFG{` ` ` `// Function to find the average` `// of a batsman` `static` `int` `averageRuns(` `int` `runs,` ` ` `int` `matches,` ` ` `int` `notout)` `{` ` ` ` ` `// Calculate number of` ` ` `// dismissals` ` ` `int` `out1;` ` ` `out1 = matches - notout;` ` ` ` ` `// Check for 0 times out` ` ` `if` `(out1 == 0)` ` ` `return` `-1;` ` ` ` ` `// Calculate batting average` ` ` `int` `avg = (runs) / out1;` ` ` ` ` `return` `avg;` `}` ` ` `// Driver code` `public` `static` `void` `Main (` `string` `[] args)` `{` ` ` `int` `runs = 10000;` ` ` `int` `matches = 250;` ` ` `int` `notout = 50;` ` ` ` ` `int` `avg = averageRuns(runs, matches,` ` ` `notout);` ` ` `if` `(avg == -1)` ` ` `Console.Write(` `"NA"` `);` ` ` `else` ` ` `Console.Write(avg);` `}` `}` ` ` `// This code is contributed by rock_cool` |

## Javascript

`<script>` `// Javascript program to calculate` `// the average of a batsman` `// Function to find the average` `// of a batsman` `function` `averageRuns(runs, matches, notout)` `{` ` ` ` ` `// Calculate number of` ` ` `// dismissals` ` ` `let out1;` ` ` `out1 = matches - notout;` ` ` `// Check for 0 times out` ` ` `if` `(out1 == 0)` ` ` `return` `-1;` ` ` `// Calculate batting average` ` ` `let avg = parseInt((runs) / out1, 10);` ` ` `return` `avg;` `}` `// Driver code ` `let runs = 10000;` `let matches = 250;` `let notout = 50;` `let avg = averageRuns(runs, matches, notout);` `if` `(avg == -1)` ` ` `document.write(` `"NA"` `);` `else` ` ` `document.write(avg);` `// This code is contributed by divyesh072019` `</script>` |

**Output:**

50

**Time Complexity:** O(1)**Auxiliary Space:** O(1)