Fonction rand dans un tableau 2d en c

Bonjour,
pouvez-vous m'aider à initialiser un tableau a 2 dimensions de maniere aléatoire?
Configuration: Windows XP
Internet Explorer 7.0

15 réponses

  1. Pour un tableau 10x10 :

    int tableau[10][10];

    Ca te donne un tableau. Il y a des chances d'avoir des résidus "aleatoires" dans ce tableau. Mais si vraiment tu veux quelque chose de plus aléatoire, tu peux utiliser les fonctions rand() et srand()...

    Dis-moi quel est ton niveau en C ?

    Est-ce que tu veux la solution toute prete toute machée ?
    Ou au contraire, es-tu pret(e) a chercher un peu ?

    a+
    -Qwerti.
    0
    1. si tu sait utiliser la fonction rand() apres il faut que tu remplisse chaque case du tableau en le parcourant avec deux boucle for et dans chaque case tu met un nombre aleatoire avec rand()

      bonne chance ;)
      0
      1. Je suis débutante en programmation mais je suis pleine de bonne volonté
        Voici, mon programme :

        #include <iostream>
        #include <algorithm>
        #include <time.h>
        using namespace std;
        #define N 6
        #define M 6
        int main()
        {
        int i,j;
        srand(time(NULL));
        char tab[N][M] = {{'a','b','c','d','e','a'},{'a','b','c','d','e','a'}};
        rand(M,N,tab*);
        for(i = 0; i < N; i++){
        for(j = 0; j < M; j++){

        cout << tab[i][j] << " | ";
        }
        cout << endl;
        return 0;
        }
        }
        0
        1. ça ressemble plutot a du C++ ça...
          ton exo c'est en C ou C++ ?
          0
          1. lol
            c'est bien ce que je me disais...
            dsl je connais pas la syntaxe exact du C++
            mais a mon avis tu devrais pas initialiser le tableau au debut
            et qd tu tire un nombre du lui affecte une letre par(exemple si tu a "1" tu considere que c'est "a" etc...)

            ps : tu devrais peu etre changer le titre de ton post pour que des gens qui s'y connaissent mieux en C++ puisse t'aider

            bonne chance ;)
            0
            1. #include <iostream>
              using namespace std;

              #define N 6
              #define M 6

              // Table des caracteres :

              #define TableLength 5
              char* table[TableLength]={"a","b","c","d","e"};

              int main(){
              int i,j;
              char* tab[M][N];
              srand(time(NULL));

              //Initialisation du tableau :
              for(i = 0; i < N; i++) for(j = 0; j < M; j++) tab[i][j]=table[(rand()*TableLength)/RAND_MAX];

              for(i = 0; i < N; i++){
              for(j = 0; j < M; j++){
              cout << tab[i][j] << " ";
              }
              cout << endl;
              }
              return 0;
              }

              C'est mieux comme ca !

              Si tu as besoin d'explications je te les fournirai sans probleme !

              a+
              -Qwerti.
              0
              1. Merci beaucoup pour ta correction. ça m'a permis de faire mon affichage.
                Voici le code :
                #include <iostream>
                #include <ctime>
                #include <cstdlib>
                using namespace std;

                #define N 6
                #define M 6

                // Table des caracteres :

                #define TableLength 5
                char* table[TableLength]={" a "," b "," c "," d "," e "} ;

                int main(){
                int i,j;
                char* tab[M][N];
                srand(time(NULL));

                //Initialisation du tableau :
                for(i = 0; i < N; i++) for(j = 0; j < M; j++) tab[i][j]=table[(rand()*TableLength)/RAND_MAX];

                for(i = 0; i < N; i++){
                cout <<" +---+---+---+---+---+---+"<< endl;
                cout <<6-i<< "|";
                for(j = 0; j < M; j++){

                cout << tab[i][j]<< "|";
                }
                cout << endl;
                }
                cout <<" +---+---+---+---+---+---+"<< endl;
                cout <<" a b c d e f"<< endl;
                return 0;
                }

                Maintenant, il faut que je m'attaque au fond.
                Je dois construire un marble...
                0
                1. Ravi d'avoir pu t'aider...

                  Mais, euh, paronne mon ignorance, c'est quoi un marble ?

                  a+
                  -Qwerti.
                  0
                  1. c'est un solitaire dont le but est de supprimer un nombre maximum de billes (ici ce sont des lettres) en un minimum de coup.
                    0
                    1. Ah cool ! :-)

                      C'est quoi la condition pour pouvoir supprimer les billes ?
                      0
                      1. il faut selectionner des lettres sur le plateau en notant leur coordonée (ex: 2f ou f2). Pour que le coup soit valide, la bille sélectionnée doit etre voisine d'au moin 1 bille de meme couleur (ici se sont des lettres). les billes voisines sont celle situé au dessus, en dessous, à droit et a gauche ( diagonale non admise) de la bille sélectionnée.
                        0
                        1. Ah d'accord !

                          Donc dans ce cas tu elimines toutes les billes qui on la meme lettre, d'un coup, c'est ca ?

                          Ex :

                          abace
                          cecad
                          cceba
                          cdcab

                          devient (j'elimine les c en bas a gauche --- je mets des points a la place)

                          ababe
                          .ecad
                          ..eba
                          .dcab

                          Et justement, on en fait quoi des points maintenant ? Ils restent comme ca, cases vides ? Mais alors je ne pourrais jamais eliminer les deux c qui restent... :-/

                          Bon, en tout cas ca a l'air rigolo...

                          Tiens-nous au courant de tes avancées !

                          a+
                          -Qwerti.
                          0
                          1. Les billes subissent un mouvement de gravité puis s'il y a des colonnes entierement vides un tassement vers la gauche.
                            Dans ton exemple, le tableau donnerai :

                            . . abe
                            . bcad
                            . eeba
                            adcab
                            0
                            1. Ahhh d'accord ! Merci pour l'info tatouprog !

                              Alors je te souhaite bonne chance avec la programmation du Marble :-)

                              a+
                              -Qwerti.
                              0