Initialiser un tableau avec des données aléatoires, tout en ayant des conditions

Résolu
snakers07 Messages postés 15 Date d'inscription vendredi 14 novembre 2008 Statut Membre Dernière intervention 24 octobre 2009 - 27 déc. 2008 à 18:40
ciberrique Messages postés 589 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 18 juillet 2010 - 1 janv. 2009 à 23:46
bonjour tout le monde,
j'ai un petit problème avec mon programme. Je voudrais initialiser un tableau a deux dimension mais avec des données précises, c'est à dire dans un tableau[6][6], mettre des données précises, je dois réspecter des conditions,
- ce tableau doit comporter toute les nombres compris entre 0 et 17, mais mis dans le tableau de facon aléatoire!!!!
-d'autre part dans ce tableau chaque chiffre compris entre 0 et 17 doit avoir son doublon, c'est a dire que dans le tableau on doit avoir 2fois  17, 2 fois 16 ect jusqu'a 0...., j'ai pasmal chercher et j'ai fai un pti programme mais qui ne fait pas tout ce que je veux, merci d'avance de votre aide!!!!
bonnes fetes a tous

le code.c

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define TAILLE_TAB 18

int main ()
{   int tabaffichage[6][6];
    int tab[TAILLE_TAB] = { 0 };
    int i, k,l,x,c,nb ,tmp;
    c=0;
    nb=0;
     /* Initialise le tableau */
         for ( i=0 ; i<TAILLE_TAB ; i++ )
         {
          tab[i] = i;
        }
   
    /* Generation aleatoire */
    srand(time(NULL));
       for ( k=0 ; k<6 ; k++ ){
          for ( l=0 ; l<6 ; l++ ){
         for ( i=0 ; i<TAILLE_TAB ;i++ )
         {
        x =rand()%(TAILLE_TAB);
        /* On permute les valeurs du tableau */
        tmp = tab[i];
        tab[i] = tab[x];
        tab[x] = tmp;
       }
    tabaffichage[k][l]=tab[x];
   
    c++;
    printf("%d ",tabaffichage[k][l]);
    if (c==6)
    {printf("\n");
    c=0;
            }
   
       }
 }
   
    return 0;
}

9 réponses

ciberrique Messages postés 589 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 18 juillet 2010 1
28 déc. 2008 à 00:14
J'ai pas le temps de te faire un code mais moi j'aurais procédé comme ca :

1.   int tabaffichage[6][6];
2.  creation d'une liste simplement chainé avec tout les chiffres a mettre dans tabaffichage (0,1,2...17,0,1,2,....,17) soit 36 cellule
3.   
pour i =0 à i<6, i++
   pour j = 0 à j<6, j++
      a = rand() % longueurdelaliste    
      tabaffichage[i][j] = liste(a);
      suppression de l'element numero a de la liste
   fin pour
fin pour

A la fin de cette boucle ton tableau tabaffichage dois etre remplis avec les nombres qu'il faut ainsi que les doublons.

<hr />www.e-fitz.com
Encore plus de sources et de tutoriels.
3