Programmieren - alles kontrollieren 4.937 Themen, 20.662 Beiträge

Problem mit Arrays (Borland C++ 5.0)

Selecta / 9 Antworten / Flachansicht Nickles

Hi, ich wollte ein Programm schreiben, das ganz viele eingegebene Zahlen eines Memo Feldes überprüft und ggf. doppelte ausgibt.
Das Problem: Es gibt bei mehreren doppelten Zahlen auch mehrmals die doppelten aus. Aber es soll zum Beispiel bei der Eingabe "1111" nur "1" ausgeben, weil 1 ist nunmal doppelt, wie oft ist vollkommen egal.

Quelltext:

void __fastcall TfrmMain::edtEingabeKeyDown
(TObject *Sender, WORD &Key,TShiftState Shift)
{
if(Key==VK_RETURN){
Zahlen[i]=StrToInt(edtEingabe->Text);
memoEingabe->Lines->Add(IntToStr(Zahlen[i]));
i++;
edtEingabe->SelectAll();
}
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::btnEingabeClick(TObject *Sender)
{
for (int d=0; d!=i; d++)
{
for(int c=d+1;c!=i;c++){
if (Zahlen[d] == Zahlen[c])
{
memoAusgabe->Lines->Add(Zahlen[c]);
}
}
}
}
Mir ist schon klar warum das so ist. ABer wie kann ich denn Zahlen[c] selber an Positionen überprüfen ? Zahlen[c(2,0)] oder Ähnliches funktioniert nicht.
Möchte einfach wissen wie ich von Arrays Stellen ausgeben kann.

GreeTz Selecta

P.S: Komplette Lösungen akzeptiere ich auch ;)

bei Antwort benachrichtigen
Selecta Nachtrag zu: „Problem mit Arrays (Borland C++ 5.0)“
Optionen

Das klappt leider nicht.

Gebe ich dies ein:

1
1
1
1
1

Gibt er: 1 aus. RICHTIG.

ABER:

gebe ich:

1 // Also 2x doppelte Zahlen
1
1
1
1
2
2
2
2
2

Gibt er:

1
1
1
1
1
2
2
2
2
2
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2

aus...

Ach ich bin ratlos ...

bei Antwort benachrichtigen