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

C++の配列内の2つの指定された要素間の要素数をカウントします


整数要素と2つの数値の開始と終了を含む配列が与えられます。タスクは、配列の開始と終了の間に存在する要素の数を計算することです。

配列は、同じタイプの要素の固定サイズの順次コレクションを格納できる一種のデータ構造です。配列はデータのコレクションを格納するために使用されますが、配列を同じタイプの変数のコレクションと考える方が便利な場合がよくあります。 start要素が複数回発生している場合は、start要素の最初の発生を考慮し、end要素が複数回発生している場合は、end要素の終了発生を考慮します。

Input − int arr[] = {1, 2, 3, 4, 5, 6, 7}
      Start = 1 and End = 7
Output − count is 5

説明 −指定された配列には、7つの要素があり、範囲は1〜7です。したがって、この範囲の間に合計5つの要素があります。

Input − int arr[] = {1, 2, 3, 4, 5, 6, 7}
      Start = 7 and End = 9
Output − count is 0

説明 −指定された配列には、7つの要素があり、範囲は7〜9です。したがって、この範囲の間に要素がないため、カウントは0になります。

以下のプログラムで使用されているアプローチは次のとおりです

  • 配列を入力します。たとえば、int arr []

  • 配列内の要素ごとに整数値を返すlength()関数を使用して、両方の配列の長さを計算します。

  • iから0まで、iが配列のサイズより小さくなるまでループを開始します

  • ループ内で、arr[i]=開始してから中断するかどうかを確認します

  • i>size-1かどうかを確認してから戻る

  • jを使用してサイズ1、j> =i+1およびj-

    で別のループを開始します
  • arr [j] =end then break

    かどうかを確認します
  • j =1かどうかを確認してから、0を返します

  • j-i-1を返す

  • 結果を印刷します。

#include <iostream>
using namespace std;
// For counting the numbers between the two elements
int countelements(int ar[], int n, int start, int end){
   // Find start
   int i = 0;
   for (i = 0; i < n; i++){
      if (ar[i] == start){
         break;
      }
   }
   // If start is not present or present at the last
   if (i >= n-1){
      return 0;
   }
   // Find end
   int j;
   for (j = n-1; j >= i+1; j--){
      if (ar[j] == end){
         break;
      }
   }
   // If end is not present
   if (j == i){
      return 0;
   }
   // number of elements between the two elements
   return (j - i - 1);
}
// Main Function
int main(){
   int ar[] = { 1, 6, 2, 5, 9, 8, 3, 7, 4 };
   int n = sizeof(ar) / sizeof(ar[0]);
   int start = 5, end = 4;
   cout <<"count is " <<countelements(ar, n, start, end);
   return 0;
}

出力

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

count is 4

  1. C++の配列内の偶数要素と奇数要素の数をカウントします

    このチュートリアルでは、配列内の偶数要素と奇数要素の数を見つけるプログラムについて説明します。 このために、アレイが提供されます。私たちのタスクは、指定された配列の偶数要素と奇数要素の数を計算することです。 例 #include<iostream> using namespace std; void CountingEvenOdd(int arr[], int arr_size){    int even_count = 0;    int odd_count = 0;    //looping through the

  2. C++で指定された数まで配列要素を最大化します

    問題の説明 整数、数値、および最大値の配列が与えられた場合、タスクは配列要素から取得できる最大値を計算することです。最初からトラバースする配列のすべての値は、前のインデックスから取得した結果に加算または減算して、任意の時点で結果が0以上、指定された最大値以下になるようにすることができます。インデックス0の場合、指定された数に等しい前の結果を取得します。可能な回答がない場合は-1を印刷します。 arr [] ={3、10、6、4、5}、数値=1、最大値=15の場合、加算と減算の順序に従うと、出力は9になります- 1 + 3 + 10 – 6 – 4 + 5 アルゴリズ