ホームページ  >  記事  >  バックエンド開発  >  C++で奇数と偶数の値を昇順に交互に並べ替える

C++で奇数と偶数の値を昇順に交互に並べ替える

PHPz
PHPz転載
2023-09-12 18:45:021154ブラウズ

C++で奇数と偶数の値を昇順に交互に並べ替える

正と負の数値を含む整数型の配列 (たとえば、任意のサイズの arr[]) を取得します。ここでのタスクは、配列の最下位要素が奇数の場合、奇数が最初、偶数が最初になるように配列を再配置することです。 2番目の方法。配列の最下位要素が偶数の場合、配列の要素は最初に偶数、次に奇数という方法で再配置されます。偶数/奇数の要素の数が奇数/偶数の要素の数より大きい場合は、 0 を配置し、結果を出力します。

さまざまな入出力シナリオを見てみましょう-

Input- int arr[] = { 1, 1, 2, 2, 5, 4 }

出力- 奇数と偶数の値を昇順で交互に並べたものは、1 2 1 2 5 4 です。

説明- 整数型の配列を取得します。次に、配列内の最小の要素を確認します。つまり、1 は奇数であるため、要素は最初に奇数に配置されます。 2 番目の方法、つまり 1 2 1 2 5 4 でも最終出力になります。

Input- int arr[] = { 6, 3, 2, 8, 10, 4 }

Output- 交互に押します。奇数と偶数の値を昇順に並べ替えると、次のようになります。 2 3 4 0 6 0

説明 - 整数型の配列を取得します。ここで、配列内の最小の要素をチェックします。つまり、2 は偶数であるため、要素

以下のプログラムで使用されるメソッドは次のとおりです。

    次の配列を入力してください。整数要素を取得し、配列のサイズを計算します。

  • C STL の sort メソッドを使用して配列を並べ替えるには、配列と配列のサイズを sort 関数に渡します。

  • 整数変数を宣言し、関数 Rearrangement(arr, size) を呼び出して設定します。

  • 関数 Rearrangement(arr, size) 内

    • #内部にベクトル型整数型データとして格納する2つの変数「vec_1」と「vec_2」を作成します。

    • 整数型の一時変数 temp を作成し、0 に設定します。

    • ブール型の別の変数をチェックとして宣言し、FALSE に設定します。

    • i が size 未満になるまで、i から 0 まで FOR ループを開始します。ループ内で IF arr[i] % 2 = 0 を確認し、arr[i] を vec_1 にプッシュします。それ以外の場合は、arr[i] を vec_2 にプッシュします。

    • 整数変数 i と j を 0 として宣言します。 IF arr[0] % 2 = 0 をチェックし、チェックを true に設定します。

    • 温度がサイズ以下になったら開始してください。ループ内で、IF check = true を確認し、arr[temp ] を vec_1[i ] に設定し、check を !check に設定します。それ以外の場合は、 arr[temp ] を vec_2[j ] に変換し、check を !check に設定します。

  • #結果を印刷します。
  • li>例
#include <bits/stdc++.h>
using namespace std;
void Rearrangement(int arr[], int size){
   vector<int> vec_1, vec_2;
   int temp = 0;
   bool check = false;
   for(int i = 0; i < size; i++){
      if(arr[i] % 2 == 0){
         vec_1.push_back(arr[i]);
      }
      else{
         vec_2.push_back(arr[i]);
      }
   }
   int i = 0;
   int j = 0;
   if(arr[0] % 2 == 0){
      check = true;
   }
   while(temp < size){
      if(check == true){
         arr[temp++] = vec_1[i++];
         check = !check;
      }
      else{
         arr[temp++] = vec_2[j++];
         check = !check;
      }
   }
}
int main(){
   int arr[] = { 1, 1, 2, 2, 5, 4 };
   int size = sizeof(arr) / sizeof(int);
   //sort an array
   sort(arr, arr + size);
   cout<<"Rearrangement of Odd and Even values in Alternate Fashion in Ascending Order is: ";
   Rearrangement(arr, size);
   for(int i = 0; i < size; i++){
      cout << arr[i] << " ";
   }
   return 0;
}

出力

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

Rearrangement of Odd and Even values in Alternate Fashion in Ascending Order is: 1 2 1 2 5 4

以上がC++で奇数と偶数の値を昇順に交互に並べ替えるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。