首頁 >後端開發 >C++ >C++程式以遞增順序重新排列數組中所有x的倍數元素

C++程式以遞增順序重新排列數組中所有x的倍數元素

王林
王林轉載
2023-08-30 20:25:061231瀏覽

C++程式以遞增順序重新排列數組中所有x的倍數元素

我們有一個整數型別的陣列 `int arr[]` 和一個整數型別的變數 `x`。任務是重新排列數組的所有元素,使它們能夠被給定的整數值 `x` 整除,並且排列順序應該是遞增的。

讓我們來看看這個問題的各種輸入輸出情況:

輸入 #- int arr[] = {4,24, 3, 5, 7, 22 , 12, 10},int x = 2

輸出 - 陣列中所有能被x=2 整除的元素的重新排列結果為:4 10 3 5 7 12 22 24

解釋 - 我們有一個整數類型的數組,包含值為{4,24, 3, 5, 7, 22, 12, 10},以及值為2 的x。現在首先我們將檢查數組中所有能被 2 整除的元素,即 4, 24, 22, 12, 10。然後我們將按遞增順序排列所有元素,即 4, 10, 3, 5, 7, 12, 22, 24,這就是最終的輸出。

輸入 - int arr[] = {4,24, 3, 5, 7, 22, 12, 10},int x = 3

#輸出 - 陣列中所有能被x=3 整除的元素的重新排列結果為:4 3 12 5 7 22 24 10

#解釋 - 我們有一個整數類型的數組,包含值為{4,24, 3, 5, 7, 22, 12, 10},以及值為3 的x。現在首先我們將檢查數組中所有能被 3 整除的元素,即 4, 24, 12。然後我們將按遞增順序排列所有元素,即 4, 3, 12, 5, 7, 22, 24, 10,這就是最終的輸出。

下面程式中所使用的方法如下

  • 宣告一個整數型別的陣列。計算數組的大小並將其儲存在一個名為size的變數中。宣告一個整數類型的變數'x',用於重新排列數組。

  • 將資料傳給函數Rearrange_Elements(arr, size, x)

  • 在函數Rearrange_Elements(arr, size, x)中

    • 建立一個名為vec的vector類型變量,儲存整數類型的值。

    • 從i到0開始循環,直到i小於size。在循環內,檢查IF arr[i] % x = 0,然後將arr[i]推入vec中

    • 使用C STL的sort方法對數組進行排序,其中我們將begin()和end()作為參數傳遞給函數。

    • 從i到0開始循環,直到i小於size。檢查IF arr[i] % x = 0,然後將arr[i]設定為vec[j ]。

    • 使用for迴圈列印數組,從數組的第一個元素遍歷到最後一個可用元素。

範例

#include <bits/stdc++.h>
using namespace std;
void Rearrange_Elements(int arr[], int size, int x){
   vector<int> vec;
   int j = 0;
   for(int i = 0; i < size; i++){
      if(arr[i] % x == 0){
         vec.push_back(arr[i]);
      }
   }
   sort(vec.begin(), vec.end());
   for (int i = 0; i < size; i++){
      if(arr[i] % x == 0){
         arr[i] = vec[j++];
      }
   }
   cout<<"Rearrangement of all elements of array which are multiples of x "<<x<<" in decreasing order is: ";
   for(int i = 0; i < size; i++){
      cout << arr[i] << " ";
   }
}
int main(){
   int arr[] = {4,24, 3, 5, 7, 22, 12, 10};
   int x = 2;
   int size = sizeof(arr) / sizeof(arr[0]);
   Rearrange_Elements(arr, size, x);
   return 0;
}

輸出

如果我們執行上述程式碼,將會產生以下輸出

Rearrangement of all elements of array which are multiples of x 2 in decreasing order is: 4 10 3 5 7 12 22 24

以上是C++程式以遞增順序重新排列數組中所有x的倍數元素的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除