Ungerade Zahlen und gerade Zahlen sortieren
-
Hallo ich folgendes array:
int num[4] = {1,3,2,8};
Die Ausgabe soll so aussehen:
Ungerade Zahlen: 13 ( oder 31 die reihenfolge ist egal )
Gerade Zahlen: 28 ( oder 28 die reihenfolge ist egal )Nun hab ich aber 0 ahnung wie ich prüfen kann ob die Zahl gerade ist oder ungerade.
Wenn sich die Zahl z.b. durch 2 Teilen lässt dann ist diese ja gerade ansonsten ungerade aber wie soll ich das dem Programm beibringen o_O
-
rnd schrieb:
Hallo ich folgendes array:
int num[4] = {1,3,2,8};
Die Ausgabe soll so aussehen:
Ungerade Zahlen: 13 ( oder 31 die reihenfolge ist egal )
Gerade Zahlen: 28 ( oder 28 die reihenfolge ist egal )Mach dein Array einfach in der Mitte durch.
-
cout<<"ugz"; for(int i=0;i<anz;++i) if(a[i]%2==1) cout<<a[i]; cout<<"gz"; for(int i=0;i<anz;++i) if(a[i]%2==0) cout<<a[i];
-
Achso geht das ist ja ganz einfach :>
ty
-
Wenn du umsortieren willst, kannst du std::Algorithmen verwenden.
int num[4] = {1, 3, 2, 8}; int* const even = std::remove_if(num, num + 4, is_even);
even
zeigt dann auf die erste gerade Zahl im Array. Alle Zahlen davor sind ungerade, alle danach gerade. std::remove_if verschiebt alle Elemente, bei denen das Prädikat (hier: is_even) true zurückgibt, ans Ende des Containers.Gruß
Don06
-
Don06 schrieb:
std::remove_if verschiebt alle Elemente, bei denen das Prädikat (hier: is_even) true zurückgibt, ans Ende des Containers.
Nein, die anderen werden nach vorn kopiert. Der hintere Teil bleibt, wie er ist. Wenn man beide Teile braucht, ist std::partition besser.