
- C++ Basics
- C++ Home
- C++ Overview
- C++ Environment Setup
- C++ Basic Syntax
- C++ Comments
- C++ Data Types
- C++ Variable Types
- C++ Variable Scope
- C++ Constants/Literals
- C++ Modifier Types
- C++ Storage Classes
- C++ Operators
- C++ Loop Types
- C++ Decision Making
- C++ Functions
- C++ Numbers
- C++ Arrays
- C++ Strings
- C++ Pointers
- C++ References
- C++ Date & Time
- C++ Basic Input/Output
- C++ Data Structures
- C++ Object Oriented
- C++ Classes & Objects
- C++ Inheritance
- C++ Overloading
- C++ Polymorphism
- C++ Abstraction
- C++ Encapsulation
- C++ Interfaces
Program for average of an array(Iterative and Recursive) in C++
Given an array of N integers arr[N], the task is to find the average of arr[N]. To achieve the result we can either use iterative approach or the recursive approach. We will be showing both in the given solution.
Average of an array will be sum of all the elements of an array divided by the number of elements.
Iterative method
In iterative approach, we use loops like for-loop, while-loop or do-while loop which executes the statements till the condition holds true which means 1.
Let’s take an example and then discuss how it can be obtained using iterative approach.
Input
arr[] = {1, 2, 4, 5, 8}
Output
4
Explanation
sum of all the elements =1+2+4+5+8 = 20, total number of elements = 5 Average will be = 20/5 = 4
Input
arr[] = {10, 20, 30, 40}
Output
25
Approach used below is as follows to solve the problem (Iterative)
Iterate each element of an array using a loop.
Sum up each element of the array till we reach the end of the array.
Divide the sum with total number of elements and return the average.
Algorithm
Start Step 1→ Declare function to calculate average using iterative method double avg(int arr[], int size) declare int sum = 0 Loop For int i=0 and i<size and i++ Set sum += arr[i] End return sum/size Step 2→ In main() Declare int arr[] = {2,3,1,6,8,10} Declare int size = sizeof(arr)/sizeof(arr[0]) Call avg(arr, size) Stop
Example
#include <iostream> using namespace std; //calculate average using an iterative method double avg(int arr[], int size){ int sum = 0; for (int i=0; i<size; i++) sum += arr[i]; return sum/size; } int main(){ int arr[] = {2,3,1,6,8,10}; int size = sizeof(arr)/sizeof(arr[0]); cout<<"average of an array using iterative method : "&l<t;avg(arr, size) << endl; return 0; }
Output
If run the above code it will generate the following output −
average of an array using iterative method : 5
Recursive method
So, what is a Recursive approach? In Recursive approach we recursively call a function again and again until we get the desirable result. In recursive approach the values returned by function is stored in stack memory.
Let’s take an example and then discuss how it can be obtained using iterative approach.
Input
arr[] = {2, 4, 6, 8}
Output
5
Explanation
sum of all the elements =2+4+6+8 = 20, total number of elements = 4 Average will be = 20/4 = 5
Input
arr[] = {12, 23, 45, 15}
Output
19
Approach used below is as follows to solve the problem (Recursive
We will call the function again and again till we reach the end of an array.
We will sum every element of the array and when we reach the end of an array, we will return the average of the array.
Algorithm
Start Step 1→ Declare function to calculate average using recursive method double recursive(int arr[],int i, int size) IF (i == size-1) return arr[i] End IF (i == 0) return ((arr[i] + recursive(arr, i+1, size))/size) End return (arr[i] + recursive(arr, i+1, size)) Step 2→ double avg(int arr[], int size) return recursive(arr, 0 , size) Step 3→ In main() Declare int arr[] = {1,5,3,2,6,7} Declare int size = sizeof(arr)/sizeof(arr[0]) Call average(arr, size) Stop
Example
#include <iostream> using namespace std; //function for calculating average recusively double recursive(int arr[],int i, int size){ if (i == size-1) return arr[i]; if (i == 0) return ((arr[i] + recursive(arr, i+1, size))/size); return (arr[i] + recursive(arr, i+1, size)); } //function for returning average double average(int arr[], int size){ return recursive(arr, 0 , size); } int main(){ int arr[] = {1,5,3,2,6,7}; int size = sizeof(arr)/sizeof(arr[0]); cout<<average of an array using a recursive approach is : "<<average(arr, size) << endl; return 0; }
Output
If run the above code it will generate the following output −
average of an array using a recursive approach is : 4
- Related Articles
- C Program for Binary Search (Recursive and Iterative)?
- Program to check if an array is sorted or not (Iterative and Recursive) in C
- Binary Search (Recursive and Iterative) in C Program
- Find Length of a Linked List (Iterative and Recursive) in C++
- Count consonants in a string (Iterative and recursive methods) in C++
- First uppercase letter in a string (Iterative and Recursive) in C++
- Recursive program to find an element in an array linearly.
- Check if linked list is sorted (Iterative and Recursive) in Python
- Count half nodes in a Binary tree (Iterative and Recursive) in C++
- Count full nodes in a Binary tree (Iterative and Recursive) in C++
- Python Program for Iterative Merge Sort
- Python Program for Iterative Quick Sort
- C Program for Iterative Merge Sort
- Java Program for Iterative Merge Sort
- Java Program for Iterative Quick Sort
