Array an zufälliger Stelle füllen



  • Sorry hab wohl das falsche Forum gewählt.Sollte C sein.

    Ich glaube,dass ich es nicht richtig formuliert habe. Ich habe ein Array 25*25,das mit "O" gefüllt ist.Jetzt will ich, dass es an einer zufälligen Stelle mit einem "Z" gefüllt wird.



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (alle ISO-Standards) in das Forum C (alle ISO-Standards) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


  • Mod

    Easy43 schrieb:

    Ich glaube,dass ich es nicht richtig formuliert habe. Ich habe ein Array 25*25,das mit "O" gefüllt ist.Jetzt will ich, dass es an einer zufälligen Stelle mit einem "Z" gefüllt wird.

    Und inwiefern wurde die Frage nicht beantwortet, außer dass ich 'X' statt 'Z' geschrieben habe?

    Wenn du Probleme damit hast, dann musst du deine Probleme konkreter erklären.



  • Schau dir doch die Beispiele von rand/srand auf den verlinkten Seiten an und versuche diese in dein Programm einzubauen. Wenn es an etwas konkretem scheitert oder das Programm nicht das macht was du erwartest fragst du nochmal nach.



  • sebi707 schrieb:

    An welcher Stelle hängst du denn fest? Eigentlich gibts da kein großes Geheimnis. Einfach zwei Zufallszahlen generieren und an diesen Stellen ins Array schreiben. Für Zufallszahlen siehe rand.

    Wieso empfiehlst du absichtlich einen schlechteren Zufallszahlengenerator, wo es doch minstd_rand gibt (C++11)?

    https://www.c-plusplus.net/forum/334173-20#2465716



  • Weil C++11 nunmal kein C ist.



  • Eigentlich empfehle ich sonst immer gerne die neuen C++11 Zufallszahlengeneratoren aber ich habe es mir hier mal gespart, da der TO wohl Anfänger ist und die neuen Zufallsgeneratoren schon komplizierter zu initialisieren und zu benutzen sind.



  • So habe es endlich geschafft.
    War wohl gestern bisschen spät,als ich versuch habe mein Problem zu schildern.
    Sry...

    #include <stdio.h>
    #include <cstdlib>
    
    int main() {
        char array[25][25];
        for(int i=0;i<25;i++){
            for(int j=0;j<25;j++){
                array[i][j]= {'O'};
            }
        }
        array[rand()%26][rand()%26]='Z';   //Zufällige Stelle mit einem Z
        array[rand()%26][rand()%26]='R';   //Zufällige Stelle mit einem R
        for(int r=0;r<94;r++){             //an 94 zufälligen Stellen
           array[rand()%26][rand()%26]='H'; //H
    
        }
        // Schleife fuer Zeilen, Y-Achse
        for(int i=0; i<25; i++) {
            // Schleife fuer Spalten, X-Achse
            for(int j=0; j<25; j++) {
                printf("%c ",array[i][j]);
            }
           printf("\n");
        }
    
        return 0;
    }
    

    Gruss Easy43



  • Durch das %26 bekommst du Zahlen von 0 bis 25 (einschließlich der Grenzen).

    Der maximale gültige Index in deinem Feld ist aber nur 24.
    Im Zweifelsfall schreibst du über die Grenzen hinaus.

    Und du wirst bei jedem Programmstart das gleiche Bild erhalten.



  • Danke für dein Hinweis. Ist mir nicht aufgefallen.
    Wie kann ich das machen, dass die Buchstaben jedesmal an zufälligen Stellen platziert werden?

    Hab an der %26 rumgespielt, aber immer dasselbe Bild.

    Gruß Easy43


  • Mod

    Schön, dass du Antworten, an denen andere Leute 20 Minuten geschrieben haben, so geflissentlich ignorierst.


Anmelden zum Antworten