Ich mache ein Programm, um festzustellen, ob ein Array mit 5 Karten (Benutzereingabe) einen bestimmten Handwert hat. Paar, zwei Paare, drei von einer Art, gerade, volles Haus, vier einer Art (alle Kartenwerte sind 2-9, keine Bildkarten, keine Farbe). Ich versuche das zu tun, ohne das Array zu sortieren. Ich verwende diese derzeit durch das Array zu suchen und zu identifizieren, wenn zwei Elemente miteinanderGleiche Elemente in einem unsortierten Array
bool pair(const int array[])
{
for (int i = 0; i < array; i++)
{
if (array[i]==aray[i+1])
{
return true;
}
else
return false;
}
Enthält dieser Code-Abschnitt gleich sind nur beurteilen, ob die ersten beiden Elemente gleich sind, oder wird es wahr zurück, wenn zwei Elemente sind gleich? Wenn die eingegebene Hand 2,3,2,4,5 wäre, würde dies falsch zurückkehren, wobei 2,2,3,4,5 wahr werden würde? Wenn ja, wie sehe ich, ob zwei Elemente unabhängig von der Reihenfolge gleich sind, ohne das Array zu sortieren?
bearbeiten: bitte verzeihen Sie die Tippfehler, ich verlasse den ursprünglichen Post intakt, um keine Verwirrung zu schaffen.
Ich habe nicht versucht, den Code zu kompilieren, für die Aufzeichnung.
* ... wird es wahr, wenn zwei Elemente identisch sind? * Warum probierst du es nicht aus? – DeiDei
Nein, dies überprüft nur, ob zwei * aufeinanderfolgende * Elemente identisch sind, daher müsste das Array sortiert werden. – CoryKramer
Abgesehen von den Tippfehlern funktioniert das * nicht *. Es werden nur zwei benachbarte Objekte verglichen - und wenn Sie nicht sortiert haben, wird es nicht funktionieren. Sie werden auch das Array verlassen. Machen Sie es zwei verschachtelte Schleifen zu beheben. – usr2564301