我們有一個整數型別的陣列 `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中文網其他相關文章!