Heim >Backend-Entwicklung >C++ >Ordnen Sie ungerade und gerade Werte in aufsteigender Reihenfolge in C++ neu an

Ordnen Sie ungerade und gerade Werte in aufsteigender Reihenfolge in C++ neu an

PHPz
PHPznach vorne
2023-09-12 18:45:021171Durchsuche

Ordnen Sie ungerade und gerade Werte in aufsteigender Reihenfolge in C++ neu an

Wir erhalten ein Array vom Typ Ganzzahl, das positive und negative Zahlen enthält, beispielsweise arr[] beliebiger Größe. Die Aufgabe besteht darin, das Array so neu anzuordnen, dass, wenn das unterste Element im Array ungerade ist, die Elemente im Array so neu angeordnet werden, dass ungerade Zahlen an erster Stelle und gerade Zahlen an erster Stelle stehen Der zweite Weg. Wenn das unterste Element im Array gerade ist, werden die Elemente des Arrays neu angeordnet, und zwar zuerst gerade und dann ungerade. Wenn die Anzahl der geraden/ungeraden Elemente größer ist als die Anzahl der ungeraden/geraden Elemente, wird dies der Fall sein Platzieren Sie 0 und drucken Sie das Ergebnis aus.

Sehen wir uns verschiedene Eingabe- und Ausgabeszenarien an -

Eingabe− int arr[] = { 1, 1, 2, 2 , 5, 4 }

Ausgabe− ungerade Zahlen abwechselnd in aufsteigender Reihenfolge Und die geraden Werte sind: 1 2 1 2 5 4.

Erläuterung- Wir erhalten ein Array vom Typ Integer. Jetzt prüfen wir das kleinste Element im Array, d. h. 1 ist eine ungerade Zahl, sodass die Elemente zuerst in der ungeraden Zahl angeordnet werden. Sogar der zweite Weg, d. h. 1 2 1 2 5 4, ist die endgültige Ausgabe.

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

Output− Das abwechselnde Neuanordnen der ungeraden und geraden Werte in aufsteigender Reihenfolge ist: 2 3 4 0 6 0

Erläuterung − Wir erhalten ein Array vom Typ Integer. Jetzt prüfen wir das kleinste Element im Array, d. h. 2 ist eine gerade Zahl, also ist elem

Die im folgenden Programm verwendete Methode lautet wie folgt:

    Geben Sie ein Array ganzzahliger Elemente ein und berechnen Sie die Größe des Arrays.

  • Sortieren Sie ein Array mit der Sortiermethode von C++ STL und übergeben Sie das Array und die Größe des Arrays an die Sortierfunktion.

  • Deklarieren Sie eine ganzzahlige Variable und legen Sie sie fest, indem Sie die Funktion Rearrangement(arr, size) aufrufen.

  • Innerhalb der Funktion Rearrangement(arr, size)

    • erstellen Sie zwei Variablen „vec_1“ und „vec_2“ vom Typ „Integer“. Daten werden als Vektortyp gespeichert.

    • Erstellen Sie eine temporäre Variable temp vom Typ Integer und setzen Sie sie auf 0.

    • Deklarieren Sie eine weitere Variable vom Typ bool als Prüfung und setzen Sie sie auf FALSE.

    • Starten Sie eine FOR-Schleife von i bis 0, bis i kleiner als die Größe ist. Überprüfen Sie innerhalb der Schleife, ob arr[i] % 2 = 0 ist, und schieben Sie dann arr[i] in vec_1. Andernfalls schieben Sie arr[i] in vec_2.

    • Ganzzahlige Variablen als i und j als 0 deklarieren. Prüfen Sie, ob arr[0] % 2 = 0 ist, und setzen Sie die Prüfung dann auf „true“.

    • Beginnen Sie, wenn die Temperatur unter der Größe liegt. Überprüfen Sie innerhalb der Schleife, ob IF check = true ist, setzen Sie dann arr[temp++] auf vec_1[i++] und prüfen Sie auf !check. Andernfalls konvertieren Sie arr[temp++] in vec_2[j++] und setzen Sie check auf !check.

  • Drucken Sie die Ergebnisse aus.

    li>

Beispiel

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

Ausgabe

Wenn wir den obigen Code ausführen, wird die folgende Ausgabe generiert

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

Das obige ist der detaillierte Inhalt vonOrdnen Sie ungerade und gerade Werte in aufsteigender Reihenfolge in C++ neu an. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen