Fonction rand dans un tableau 2d en c

tatouprog Messages postés 6 Statut Membre -  
Qwerti Messages postés 166 Statut Membre -
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. Qwerti Messages postés 166 Statut Membre 85
     
    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
  2. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    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
  3. tatouprog Messages postés 6 Statut Membre
     
    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
  4. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    ça ressemble plutot a du C++ ça...
    ton exo c'est en C ou C++ ?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. tatouprog Messages postés 6 Statut Membre
     
    en c++
    0
  7. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    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
  8. Qwerti Messages postés 166 Statut Membre 85
     
    #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
  9. tatouprog
     
    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
  10. Qwerti Messages postés 166 Statut Membre 85
     
    Ravi d'avoir pu t'aider...

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

    a+
    -Qwerti.
    0
  11. tatouprog Messages postés 6 Statut Membre
     
    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
  12. Qwerti Messages postés 166 Statut Membre 85
     
    Ah cool ! :-)

    C'est quoi la condition pour pouvoir supprimer les billes ?
    0
  13. tatouprog Messages postés 6 Statut Membre
     
    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
  14. Qwerti Messages postés 166 Statut Membre 85
     
    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
  15. tatouprog Messages postés 6 Statut Membre
     
    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
  16. Qwerti Messages postés 166 Statut Membre 85
     
    Ahhh d'accord ! Merci pour l'info tatouprog !

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

    a+
    -Qwerti.
    0