C: Bestimmtes Element aus Array löschen |
02.11.2012, 21:15 | Auf diesen Beitrag antworten » | ||||||||||
nano99 | C: Bestimmtes Element aus Array löschen Meine Frage: Hi! Ich versuche gerade, ein Programm zu programmieren, das Quartettkarten verteilt. Ich kann soweit alles, aber ich habe noch 2 offene Fragen dazu: Ich habe ein int-Array (int zahlen=11,12,13,14,21,22,23,24 1. Jetzt möchte ich ein zufälliges Element aus diesem Array nehmen. Ich will also eine Zufallszahl zwischen 0 und sizeof(zahlen)-1 generieren (Ganzzahl). 2. Die generierte Zahl soll nun als Element im Array gelöscht werden. also z.B.: int zufallszahl=2; //Nur mal so, ich weiß ja nicht, wie man Zufallszahlen macht loeschenausarray(zahlen[zufallszahl]); //Das jeweilige Element soll also gelöscht werden. Die Position im Array soll jedoch nicht einfach leer gemacht werden, sondern komplett gelöscht werden! Meine Ideen: zu 1.: Ich habe gehört, dass es eine Funktion ("rand()" oder "srand()") für Zufallszahlen gibt. Man soll auch irgendwie die Zeit miteinbringen. Sonst habe ich keine Ahnung! :-) |
||||||||||
|
|||||||||||
03.11.2012, 01:20 | Auf diesen Beitrag antworten » | ||||||||||
Karlito | Hallöchen, schön mal wieder von Dir zu hören. Zu 1.: Das Beispiel unter http://www.cplusplus.com/reference/clibrary/cstdlib/rand/ kannst Du dir ja mal anschauen. Du musst nur den Wertebreich deinen Anforderungen entsprechend anpassen. Hier ist von 1 - 9 gewählt. Kennst du die Modulo-Operation? Wenn nicht, schau sie dir an oder frag noch mal nach. Zu 2. Aus einem Array Löschen ist nicht ganz so einfach. Da schreibe ich Dir morgen oder übermorgen noch mal dazu. Da muss ich mir ein paar Code-Beispiele ausdenken, damit du verstehst, wie das funktioniert, ohne dass ich viel Text schreibe. Dazu ist es mir heute zu spät VG, Karlito |
||||||||||
04.11.2012, 22:48 | Auf diesen Beitrag antworten » | ||||||||||
Karlito | Hallo nano99, Du weist ja vielleicht, dass ein Array in C immer die selbe Länge hat. Du deklarierst also ein Array z.B. mit:
Und es hat immer die Länge 5. Es gibt auch noch andere Varianten, aber das ist ein wenig schwerer zu verstehen. Was Du nun machen kannst um ein Element im Array zu löschen ist, dass du dir die Größe des Arrays in einer weiteren Variable merkst. Bsp:
Ich hoffe der Code macht dir den Prozess verständlich. Sag bescheid, wenn noch was unklar ist. VG, Karlito |
||||||||||
05.11.2012, 18:30 | Auf diesen Beitrag antworten » | ||||||||||
nano99 | C: Element aus Array löschen Hi! Erstmal vielen Dank für den ganzen Code! Ich habe für mein fertiges Programm deine Funktionen verwendet, und alles funktioniert einwandfrei! WOW! Hier nochmal mein fertiges Programm:
Also: Danke für deine Hilfe! |
||||||||||
Anzeige | |||||||||||
|
|||||||||||
06.11.2012, 13:28 | Auf diesen Beitrag antworten » | ||||||||||
Karlito | Hallo nano. Bitte, gerne. Ich hoffe Du hast den Code auch nachvollzogen. Wenn Du genau hinschaust, ist die Stelle
überflüssig, da sie in der darauffolgenden Schleife eh noch mal abgefangen wird (die schleife wird nicht ausgeführt) Weiter so! VG, Karlito |
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
|
Die Neuesten » |
|