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 !
A voir également:
- Tirage aleatoire de caractere en C
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
- Caractere vide - Guide
- Caractere speciaux mac - Guide
3 réponses
SLT,
Tu pe reessayer ton program en utilisan les code ascii decimale ....(ignorer l' initialisation du tableau des caractaires)....
Tu pe reessayer ton program en utilisan les code ascii decimale ....(ignorer l' initialisation du tableau des caractaires)....
thotoss
euh....c'est a dire ? ne pas utiliser les caracteres ? il n'y a aucun moyen de faire un tirage aleatoire de caractere ?
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 tableau
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 tableau
int 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
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");
}
{
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");
}