Tirage aleatoire de caractere en C
Résolu
thotoss
-
thotoss -
thotoss -
Bonjour,
je souhaite realiser la fonction suivante, mais elle ne fonctionne pas :
j'ai définie
char sac[102]={'A','A','A','A','A','A','A','A','A','B','B','C','C','D','D','D','E','E','E','E','E','E','E','E','E','E','E','E','E','E','E','F','F','G','G','H','H','I','I','I','I','I','I','I','I','I','J','K','L','L','L','L','L','M','M','M','N','N','N','N','N','N','O','O','O','O','O','O','P','P','Q','R','R','R','R','R','R','S','S','S','S','S','S','T','T','T','T','T','T','U','U','U','U','U','U','V','V','W','X','Y','Z','$'};
et
char chevalet[7];
Ensuite j'ai fait une fonction qui devrait remplir aleatoirement chevalet en prenant dans sac, mais elle ne marche pas. Pourriez-vous me dire ou est mon erreur ?
void chevalet_init(char chevalet[7])
{
srand((unsigned)time(NULL));
char * ad;
ad=&chevalet[0];
int i;
for (i=0;i<7;i++)
{
*ad=rand()%sac[102];
ad++;
}
}
Merci !
je souhaite realiser la fonction suivante, mais elle ne fonctionne pas :
j'ai définie
char sac[102]={'A','A','A','A','A','A','A','A','A','B','B','C','C','D','D','D','E','E','E','E','E','E','E','E','E','E','E','E','E','E','E','F','F','G','G','H','H','I','I','I','I','I','I','I','I','I','J','K','L','L','L','L','L','M','M','M','N','N','N','N','N','N','O','O','O','O','O','O','P','P','Q','R','R','R','R','R','R','S','S','S','S','S','S','T','T','T','T','T','T','U','U','U','U','U','U','V','V','W','X','Y','Z','$'};
et
char chevalet[7];
Ensuite j'ai fait une fonction qui devrait remplir aleatoirement chevalet en prenant dans sac, mais elle ne marche pas. Pourriez-vous me dire ou est mon erreur ?
void chevalet_init(char chevalet[7])
{
srand((unsigned)time(NULL));
char * ad;
ad=&chevalet[0];
int i;
for (i=0;i<7;i++)
{
*ad=rand()%sac[102];
ad++;
}
}
Merci !
Configuration: Windows XP Internet Explorer 6.0
3 réponses
-
SLT,
Tu pe reessayer ton program en utilisan les code ascii decimale ....(ignorer l' initialisation du tableau des caractaires).... -
-
tu peux pas tirer des caracteres aleatoire comme ça...
mais tu peux utiliser cette methode,
tu tire un nombre entre 0 et 101 qui correspond aux differentes cases de sac et tu le met dans ton autre tableauint i; for (i=0;i<7;i++) { nbr=rand()%102; chevalet[i]=sac[nbr]; }comme ça dans chevalet tu auras les caracteres tiré au hasard de sac-
Bonjour,
alors voila mon prgramme, 2 fonctions qui initialise le chevalet et qui l'affiche :
void chevalet_init(char a[7])
{
srand((unsigned)time(NULL));
int i,nbr;
for (i=0;i<7;i++)
{
nbr=rand()%102;
chevalet[i]=sac[nbr];
}
}
void chevalet_affiche(char a[7])
{
int i;
printf("Voici votre chevalet : \n");
for (i=0;i<7;i++)
{
printf("%s",a[i]);
}
printf("\n");
}
Mais quand je le lance, il m'affiche cela :
Voici votre chevalet :
<null><null><null><null><null><null><null>
Ou est mon erreur ??
merci -
-
-
void chevalet_init(char a[7])
{
srand((unsigned)time(NULL));
int i,nbr;
for (i=0;i<7;i++)
{
nbr=rand()%102;
chevalet[i]=sac[nbr]; //chevalet n'est pas declarer dans cette fonction
//il faux metre a[i] a la place de chevalet[i]
}
}
void chevalet_affiche(char a[7])
{
int i;
printf("Voici votre chevalet : \n");
for (i=0;i<7;i++)
{
printf("%s",a[i]);
}
printf("\n");
}
-
-