IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Remplir un tableau aléatoirement avec lettres et chiffres


Sujet :

C

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 56
    Par défaut Remplir un tableau aléatoirement avec lettres et chiffres
    Bonjour,
    je viens de créer un tableau 2D dynamique de caractère.
    Je dois maintenant remplir le tableau alternativement de chiffres et de lettres tirés au hasard mais je ne sais pas comment faire.

    Est ce que quelqu'un pourrait jeter un coup d'oeil à mon code.

    Merci beaucoup d'avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    #include<stdio.h>
    #include<stdlib.h>
     
    int main()
    {
     
     
    int ligne,colonne,i,taille,type,y;
    char **tab;
     
    srand((int)time(NULL)); 
     
    do
    {
    printf("\nSaisir le nombre de lignes:\n");
    fflush (stdin);
    scanf("%d", &ligne);
    }while(ligne<=0);
     
    do
    {
    printf("\nSAisir le nombre de colonnes:\n");
    fflush (stdin);
    scanf("%d", &colonne);
    }while(colonne<=0);
     
     
    /* Allocation de la 1er dimension */
    tab = (char **) malloc ( sizeof (char *) * ligne);
     
    /* Allocation des tableaux */
    for (i=0; i<ligne; i++)
        {
        tab[i] = (char *) malloc ( sizeof (char ) * colonne);
        }
     
    for(i=0;i<ligne;i++)
    {
     
       for(y=0;y<colonne;y=y+2)
      {
       tab[i][y] = rand()%10 + '0';        
       }                 
     
    }
    for(i=0;i<ligne;i++)
    {
     
       for(y=1;y<colonne;y+2)
      {
       tab[i][y] = rand()%26 + 'a';        
       }                 
     
    }
     
     
     
    printf("%s", &tab);
     
     
      system ("pause");
      return 0;
     
    }

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Si tu ne veux pas de caractères accentués, tu peux faire comme ceci :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    ....
     
    int main()
    {
    double percent ;
    int      numero, last=0 ;
    .....
     
    for(i=0;i<ligne;i++)
     for(j=0;j<colonne;j++ )                    
       {
            percent = (double)rand()/(double)RAND_MAX ;
     
            if ( (last % 2) == 0 )  /* Si c"est pair, par exemple, on met une lettre */
              {
                  numero = (int)(percent * 56.0) ;  /* 26 minuscules + 26 majuscules */  
                  if ( numero > 25 )
                         tab[i][j] = 97 + (numero - 26) ;   /* minuscules */
                   else
                         tab[i][j] = 65 + numero ;   /* majuscules */
              }
            else  /* C'est impair, on met un chiffre */
              {
                  numero = (int)(percent * 10.0) ;  /* 10 chiffres */  
                  tab[i][j] = 48 + numero ;   /* chiffre */
               }
     
            last = last + 1 ;
       }
    .......
     
    }

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 56
    Par défaut
    J'ai éditer mon premier post

    Le revoila :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    #include<stdio.h>
    #include<stdlib.h>
     
    int main()
    {
     
     
    int ligne,colonne,i,taille,type,y;
    char **tab;
     
    srand((int)time(NULL)); 
     
    do
    {
    printf("\nSaisir le nombre de lignes:\n");
    fflush (stdin);
    scanf("%d", &ligne);
    }while(ligne<=0);
     
    do
    {
    printf("\nSAisir le nombre de colonnes:\n");
    fflush (stdin);
    scanf("%d", &colonne);
    }while(colonne<=0);
     
     
    /* Allocation de la 1er dimension */
    tab = (char **) malloc ( sizeof (char *) * ligne);
     
    /* Allocation des tableaux */
    for (i=0; i<ligne; i++)
        {
        tab[i] = (char *) malloc ( sizeof (char ) * colonne);
        }
     
    for(i=0;i<ligne;i++)
    {
     
       for(y=0;y<colonne;y=y+2)
      {
       tab[i][y] = rand()%10 + '0';        
       }                 
     
    }
    for(i=0;i<ligne;i++)
    {
     
       for(y=1;y<colonne;y+2)
      {
       tab[i][y] = rand()%26 + 'a';        
       }                 
     
    }
     
     
     
    printf("%s", &tab);
     
     
      system ("pause");
      return 0;
     
    }

    Merci beaucoup

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    on a posté ensemble .. Regardes mon post..

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 56
    Par défaut
    Merci beaucoup pour le code,
    sans accents ça me convient très bien ^^.

    mais comment faire pour afficher le tableau
    J'utilise la commande : printf("%s", &tab); sans succès .

    Désolé je suis un gros débutant.

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    non il faut que tu refasses une boucle, au moins sur les lignes....


    Mais comme ce n'est pas des chaînes, mais des char que tu stockes il te faut faire une double boucle (la ligne ne sera pas une chaîne car pas terminée par '\0')...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for ( i = 0 ; i < ligne ; i++ )
    {
       fprintf ( stdout, "\n" );
        for ( j = 0 ; j < colonne ; j++ )
           fprintf ( stdout, "%c", tab[i][j] );
    }

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 56
    Par défaut
    Merci beaucoup !!!!!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Recherche valeur dans un tableau à 3 colonnes avec lettres et chiffres
    Par Remiroche.tw dans le forum Excel
    Réponses: 2
    Dernier message: 17/11/2012, 11h49
  2. Remplir un tableau dynamiquement avec une invitation
    Par scofield69 dans le forum Langage
    Réponses: 3
    Dernier message: 12/08/2009, 07h51
  3. [MySQL] Remplir un tableau associatif avec une boucle while
    Par Palsajicoco dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 09/07/2009, 09h59
  4. Remplir un tableau aléatoirement
    Par emprex dans le forum Débuter
    Réponses: 13
    Dernier message: 27/05/2008, 08h06
  5. [Système] champ avec lettres et chiffres
    Par lodan dans le forum Langage
    Réponses: 4
    Dernier message: 23/09/2006, 20h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo