C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++での配列(反復および再帰)の平均のためのプログラム


N個の整数arr[N]の配列が与えられた場合、タスクはarr[N]の平均を見つけることです。結果を達成するために、反復アプローチまたは再帰アプローチのいずれかを使用できます。与えられたソリューションで両方を表示します。

配列の平均は、配列のすべての要素の合計を要素の数で割ったものになります。

反復法

反復アプローチでは、forループ、whileループ、do-whileループなどのループを使用して、条件が真になるまでステートメントを実行します。これは1を意味します。

例を挙げて、反復アプローチを使用してそれを取得する方法について説明しましょう。

入力

arr[] = {1, 2, 4, 5, 8}

出力

4

説明

sum of all the elements =1+2+4+5+8 = 20,
total number of elements = 5
Average will be = 20/5 = 4

入力

arr[] = {10, 20, 30, 40}

出力

25

問題を解決するために以下で使用されるアプローチ(反復)

  • ループを使用して配列の各要素を繰り返します。

  • 配列の最後に到達するまで、配列の各要素を合計します。

  • 合計を要素の総数で割り、平均を返します。

アルゴリズム

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

#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;
}

出力

上記のコードを実行すると、次の出力が生成されます-

average of an array using iterative method : 5

再帰的方法

では、再帰的アプローチとは何ですか?再帰的アプローチでは、望ましい結果が得られるまで、関数を何度も再帰的に呼び出します。再帰的アプローチでは、関数によって返される値はスタックメモリに格納されます。

例を挙げて、反復アプローチを使用してそれを取得する方法について説明しましょう。

入力

arr[] = {2, 4, 6, 8}

出力

5

説明

sum of all the elements =2+4+6+8 = 20,
total number of elements = 4
Average will be = 20/4 = 5

入力

arr[] = {12, 23, 45, 15}

出力

19

以下で使用するアプローチは、問題を解決するために次のとおりです(再帰的

  • 配列の最後に到達するまで、関数を何度も呼び出します。

  • 配列のすべての要素を合計し、配列の最後に到達すると、配列の平均を返します。

アルゴリズム

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

#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;
}

出力

上記のコードを実行すると、次の出力が生成されます-

average of an array using a recursive approach is : 4

  1. 配列の積のCプログラム

    n個の要素の配列arr[n]が与えられた場合、タスクはその配列のすべての要素の積を見つけることです。 7つの要素の配列arr[7]があるように、その製品は次のようになります 例 Input: arr[] = { 10, 20, 3, 4, 8 } Output: 19200 Explanation: 10 x 20 x 3 x 4 x 8 = 19200 Input: arr[] = { 1, 2, 3, 4, 3, 2, 1 } Output: 144 以下で使用されるアプローチは次のとおりです − 配列入力を取得します。 そのサイズを見つけます。 配列を反復処理し、その配列の

  2. 配列要素の乗算のためのC++プログラム

    整数要素の配列で与えられ、タスクは配列の要素を乗算して表示することです。 例 Input-: arr[]={1,2,3,4,5,6,7} Output-: 1 x 2 x 3 x 4 x 5 x 6 x 7 = 5040 Input-: arr[]={3, 4,6, 2, 7, 8, 4} Output-: 3 x 4 x 6 x 2 x 7 x 8 x 4 = 32256 以下のプログラムで使用されるアプローチは次のとおりです − 一時変数を初期化して、最終結果を1で格納します ループを0からnまで開始します。nは配列のサイズです 最終結果を得るには、tempの値にarr[i]を掛け続